2017-05-23 3 views
0

Ich verwende SolrJ zum Einfügen/Abfragen von solr Daten [solr cloud 6.5 - 3 machines]. Früher habe ich unter Code den SolrClient zu erstellen -Zookeeper-Konfiguration in solrJ Throwing Ausgelesene Exception lesen

HttpSolrClient server; 
server = new HttpSolrClient.Builder("").build(); 
server.setSoTimeout(20000); 
server.setConnectionTimeout(20000); 
server.setDefaultMaxConnectionsPerHost(200); 
server.setMaxTotalConnections(200); 
server.setFollowRedirects(false); 
server.setAllowCompression(true); 

Jetzt konfiguriert I 3 Zookeeper-Server auf dieser solr Cloud. Code Solr Client wurde zu schaffen -

CloudSolrClient server; 
String serverURL="zkapp1,zkapp2,zkapp3"; 
ArrayList zkHosts = newrrayList(Arrays.asList(serverURL.split(","))); 
server = new CloudSolrClient.Builder().withZkHost(zkHosts).build(); 
server.setSoTimeout(20000); 
server.setZkConnectTimeout(20000); 
server.setDefaultCollection("testSolr"); 

Ich möchte wissen, wo ich andere Eigenschaften angeben müssen, die vor vorhanden waren [DefaultMaxConnectionsPerHost, MaxTotalConnections, followRedirects, AllowCompression].

Bitte leiten, wie Zookeeper zu konfigurieren, da mit diesen Einstellungen, nach einiger Zeit unter Ausnahme beobachtet wird [Nach einigen erfolgreichen Hits (Lesen/Schreiben)] -

org.apache.solr.client.solrj.SolrServerException: Timeout occured while waiting response from server at: http://solr6CLoudMachine:8983/solr/testSolr 
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:621) 
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:279) 
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:268) 
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:149) 
at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:484) 
at org.apache.solr.client.solrj.SolrClient.commit(SolrClient.java:463) 
at com.til.damcore.repository.DAMCoreSolrManager.insertContent(DAMCoreSolrManager.java:288) 
at com.til.damcore.services.CMSContentUploadServiceSolrOnly.uploadCMSContent(CMSContentUploadServiceSolrOnly.java:227) 
at com.til.damapi.service.InsertContentService.insertSolrOnlyContent(InsertContentService.java:136) 
at com.til.damapi.controller.insert.InsertionController.insertDataSolr6(InsertionController.java:175) 
at sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222) 
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) 
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814) 
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737) 
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969) 
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:871) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121) 
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 
    Caused by: java.net.SocketTimeoutException: Read timed out 
at java.net.SocketInputStream.socketRead0(Native Method) 
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) 
at java.net.SocketInputStream.read(SocketInputStream.java:170) 
at java.net.SocketInputStream.read(SocketInputStream.java:141) 
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:160) 
at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:84) 
at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:273) 
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140) 
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57) 
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261) 
at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:283) 
at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:251) 
at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:197) 
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272) 
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124) 
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:685) 
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:487) 
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:515) 
... 45 more 

Kann jemand bitte vorschlagen, was die empfohlene Produktion ist Einstellungen für Zoowärter?

Ich bin völlig fest.

Jede Hilfe wird sehr geschätzt.

Danke,

Vibhav

Antwort

0

Wenn Sie SolrJ in Verbindung mit SolrCloud verwenden, gibt Zookeeper den Namen oder die IP-Adresse des Solr Instanz, die Sie verbinden müssen, um Ihre Ausnahme suchen die Solr-Instanz solr6CLoudMachine.

Als erstes müssen Sie überprüfen, ob Sie solr6CLoudMachine von dem Host aus erreichen können, auf dem Sie den SolrJ Client ausführen.

Zum Beispiel versuchen, zuerst zu sehen, die IP-Adresse von solr6CLoudMachine von Shell lösen kann:

ping solr6CLoudMachine 

Dann versuchen Sie, wenn Sie den Hafen erreichen:

curl http://solr6CLoudMachine:8983/solr/ 

Und wieder da Wenn Sie mit einem SolrCould-Cluster konfrontiert werden, haben Sie wahrscheinlich mehr als eine Solr-Instanz zu erreichen.

Von dem Host, auf dem Sie Ihren SolrJ-Client ausführen, sollten Sie also alle Solr-Instanzen erreichen können, in denen sich Ihre Zielkollektionen befinden.

+0

HALL @freedev: danke für die Antwort. Ich habe bereits verifiziert, dass ping vom Quellrechner funktioniert. Diese Ausnahme tritt nach einigen erfolgreichen Treffern auf .. mein Schlechter, ich erwähnte das nicht in Frage. –