Назад | Перейти на главную страницу

Время ожидания чтения Solr (только в производственной среде)

Я работаю с приложением Java, которое использует SolrJ для индексации документов на сервере Solr.

В моей локальной тестовой среде я запускаю локальный экземпляр Solr на сервере Tomcat в моем компьютере с Windows XP. Когда я запускаю приложение Java из другого окна Windows, индексация завершается успешно, и файлы журнала Solr выглядят нормально.

Однако при запуске того же Java-приложения, развернутого на веб-сервере linux, которое обменивается данными с другим веб-сервером linux, на котором запущен Solr, я получаю сообщения «тайм-аут чтения» после каждой команды обновления solr:

14 июля 2011 г. 3:12:31 org.apache.solr.core.SolrCore выполнить INFO: []

webapp = / solr path = / update params = {wt = javabin & version = 1} status = 400 QTime = 20020 14 июля 2011 г. 3:12:51 org.apache.solr.update.processor.LogUpdateProcessor finish ИНФОРМАЦИЯ: {} 0 20021 14 июля 2011 г. 3:12:51 org.apache.solr.common.SolrException log СЕРЬЕЗНО: org.apache.solr.common.SolrException: java.net.SocketTimeoutException: время чтения истекло в org.apache.solr.handler .XMLLoader.load (XMLLoader.java:72) в org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody (ContentStreamHandlerBase.java:54) в ...

Вызвано: javax.xml.stream.XMLStreamException: java.net.SocketTimeoutException: время чтения истекло

Есть идеи, почему это может происходить? Я подозреваю, что что-то закрывает эти подключения после их запуска (например, программное обеспечение веб-фильтрации, брандмауэр ...), но сетевые администраторы на моем рабочем месте говорят, что трафик не блокируется.

Мне также странно, почему это работает в Windows, но не в Linux.

Несколько отведений:

  • Вы индексируете данные с высокой скоростью? Если да, это может привести к блокировкам solr, пока он записывает свои индексы на диск (объясните, почему это не отображается на dev ...)
  • Медленный диск или ФС на линуксе? Если да, то вместе с индексацией это может стать настоящим адом ...
  • Вы пытались запустить две службы (web и solr) на одном компьютере с Linux, чтобы увидеть, как проблема исчезла? Если проблема исчезнет, ​​значит, она явно связана с сетью, и вы можете переключиться на «окончательное» решение:
  • Вы пробовали обнюхивать сетевой трафик, используя tcpdump и откройте след в Wireshark, посмотри, что происходит?

Надеюсь это поможет. Удачи !