当我们调用SOLR服务器时,我们遇到了一个“连接重置”错误。并且我们的并发负载相当小。
以下是SOLR的Tomcat连接器配置:
<Connector port="8983" protocol="HTTP/1.1"
connectionTimeout="20000" maxThreads="40000" minSpareThreads="400" maxSpareThreads="5000" maxKeepAliveRequests="100" URIEncoding="UTF-8"
redirectPort="8943" />这是我们从SOLR客户端得到的:
Caused by: org.apache.solr.client.solrj.SolrServerException: java.net.SocketException: Connection reset
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:472)
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:243)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:89)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:122)
... 36 more
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78)
at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106)
at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1116)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1413)
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1973)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1735)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1098)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)通过阅读SOLR客户端代码进行故障排除后,我们发现这可能是由于SOLR的Tomcat配置中的连接超时设置不正确造成的。我们决定将其更改为默认值(无限超时)。所以,我的问题是,当将该值设置为infinite时,是否会带来其他性能问题?
发布于 2012-10-13 09:55:41
调用Solr的客户端是什么?查询结果是什么?不管是什么原因,这个查询是不是一个运行了很长时间而没有返回的查询?
https://stackoverflow.com/questions/5725329
复制相似问题