java - "Connection Reset"发生在 Solr 客户端

标签 java performance tomcat solr config

我们在调用 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 配置中的连接超时设置不正确所致。我们决定将其更改为默认值(无限超时)。所以,我的问题是,将此值设置为无穷大是否会带来其他性能问题?

最佳答案

调用 Solr 的客户端是什么?并提出查询?出于某种原因,查询是否运行了很长时间而没有返回?

关于java - "Connection Reset"发生在 Solr 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725329/

相关文章:

java - 计算处理差异

excel - 使用VBA代码根据excel列表列更改文件夹名称

performance - PostgreSQL 可扩展性 : Towards Millions TPS

java - JSP, "User cannot be resolved to a type"

java - 本地主机上的 Apache Tomcat 8 无法启动 - eclipse

java - 如何使用 gradle 对多个嵌入式服务器运行 spring-boot 集成测试

java - 如何将 Jooq 用于尚不存在的表?

Java静态数组修改

java - 野飞多数据源

java - windows 2000 server中tomcat应用映射域名