Http Parser在jetty 8 solr(v 4.5)服务器中完全例外

时间:2017-03-30 07:36:31

标签: solr jetty

我有一个独立的solr(4.5)服务器,它运行在jetty 8之上。我在apache tomcat服务器上有一个应用服务器,它是一个面向客户的节点。 应用程序服务器连接到独立的solr服务器以获取搜索结果。我发送POST请求,因为查询到SOLR很大但我在jetty solr服务器上收到以下WARN消息:

 WARN  org.eclipse.jetty.http.HttpParser  â HttpParser Full for server1:8983 <->server 2:99988

在tomcat应用程序服务器上,我收到以下错误消息:

  SEVERE: Servlet.service() for servlet [DispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.solr.common.SolrException: No live SolrServers available to handle this request] with root cause
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 | java.net.SocketException: Broken pipe
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at java.net.SocketOutputStream.socketWrite0(Native Method)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.io.AbstractSessionOutputBuffer.flushBuffer(AbstractSessionOutputBuffer.java:147)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.io.AbstractSessionOutputBuffer.writeLine(AbstractSessionOutputBuffer.java:246)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.io.HttpRequestWriter.writeHeadLine(HttpRequestWriter.java:56)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.io.HttpRequestWriter.writeHeadLine(HttpRequestWriter.java:44)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.io.AbstractMessageWriter.write(AbstractMessageWriter.java:90)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.AbstractHttpClientConnection.sendRequestHeader(AbstractHttpClientConnection.java:258)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.conn.DefaultClientConnection.sendRequestHeader(DefaultClientConnection.java:271)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.conn.ManagedClientConnectionImpl.sendRequestHeader(ManagedClientConnectionImpl.java:203)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:221)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:715)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:395)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.402 |         at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:199)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.403 |         at org.apache.solr.client.solrj.impl.LBHttpSolrServer.request(LBHttpSolrServer.java:467)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.403 |         at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
INFO   | jvm 1    | main    | 2017/03/30 03:30:46.403 |         at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)

我尝试在 jetty.xml 中增加“requestHeaderSize”“maxFormContentSize”,但没有运气。

1 个答案:

答案 0 :(得分:0)

  

首先:Jetty 8 is EOL (End of Life),考虑升级到支持且稳定的东西。

HttpParser Full来自过大的请求实体(请求URI行和请求标头)。

如果此错误来自服务器端,则其为“请求标头”。

有关在服务器端正确配置它的建议,请参阅https://stackoverflow.com/a/16015332/775715。 (提示:它是Connector设置。所以,如果你有2个连接器,你有2个配置可以改变)

maxFormContentSize用于POST次请求的请求正文内容,对请求uri或请求标头没有影响。对于过多的请求正文内容,不会触发HttpParser Full,因此请忽略问题的这一方面,关注请求URI和请求标题。

如果此错误来自客户端,则其响应标头。

注意生成这些请求URI和请求标头的内容,因为它是罪魁祸首!默认设置是专为一般互联网上的最大兼容性而设计的,如果您必须增加默认设置,那么您的请求URI或请求标头有严重错误,或者您使用的API不正确(例如通过POST / GET uri字符串,而不是请求正文内容)