Тайм-ауты Zookeeper без ошибок в Zookeeper Solr - PullRequest
0 голосов
/ 19 декабря 2018

Мы сталкиваемся с проблемой с solr / zookeeper, когда время ожидания zookeeper превышает 10000ms.Ошибка ниже.

SolrException: java.util.concurrent.TimeoutException: Could not connect to ZooKeeper <server1>:9181,<server2>:9182,<server2>:9183 within 10000 ms.
at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:184)
at org.apache.solr.common.cloud.SolrZkClient.<init>(SolrZkClient.java:121)

Мы не получаем никаких ошибок в журналах zookeeper. За исключением журналов ниже

2018-12-19 04:35:22,305 [myid:2] - INFO  [SessionTracker:ZooKeeperServer@354] - Expiring session 0x200830234de3127, timeout of 10000ms exceeded
2018-12-19 05:35:38,304 [myid:2] - INFO  [SessionTracker:ZooKeeperServer@354] - Expiring session 0x200b4f912730086, timeout of 10000ms exceeded

Во время проблемы потоки идут высоко, и мы могли заметить ниже на сервере weblogic.

Name: Connection evictor
State: TIMED_WAITING
Total blocked: 0  Total waited: 1
Stack trace: 
java.lang.Thread.sleep(Native Method)
org.apache.http.impl.client.IdleConnectionEvictor$1.run(IdleConnectionEvictor.java:66)
java.lang.Thread.run(Thread.java:748)

Что здесь может пойти не так?

1 Ответ

0 голосов
/ 19 декабря 2018

По моему опыту, таймауты ZK почти всегда были вызваны чем-то на узле Solr, а не проблемой в ZK.

Вы не предоставляете все метки времени, но теория такова:

  1. Solr по какой-то причине не может отправить пульс
  2. ZK предполагает, что клиент имеетушел и закрывает соединение
  3. Solr пытается использовать соединение, которое ZK закрыло

Так почему же узлу Solr не удается отправить пульс?Это может быть из-за того, что узел Solr был просто перегружен (является ли резкий скачок потока причиной или симптомом?) Или просто работа через очень длинную паузу в GC тоже могла бы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...