У нас есть solr router и шарды. Это отображается в журнале причала маршрутизатора при выполнении фасетного поиска по всем шардам.
org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset by peer: socket write error
org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
за которым следует исключение о внутренней ошибке сервера. У нас восемьдесят шардов, распределенных по нескольким серверам. Маршрутизатор работает на собственном узле.
UPD: в классе HttpCommComponent для SOLR, который отправляет запросы в шарды с использованием класса HttpClient, я заметил следующий набор в MultiThreadedHttpConnectionManager: mgr.getParams (). SetDefaultMaxConnectionsPerHost (20);
мне кажется, слишком мало настроек для 80+ шардов.
В сообщении говорится, что ваш сервер получил tcp-reset и поэтому не может продолжить работу.
Полагаю, он действовал как HTTP-клиент? Правильный ли целевой URL (то есть не закрытый порт).
Используя tcpdump или аналогичный, вы сможете выяснить, что пошло не так.
После еще одной отладки я обнаружил, что один из запросов имел размер 4,4 МБ. По умолчанию maxPostSize в tomcat6 составляет 2 МБ (http://tomcat.apache.org/tomcat-6.0-doc/config/ajp.html).
Изменение этого значения на 10 МБ значительно улучшило ситуацию на стороне solr.