【问题标题】:Zookeeper timeouts without error in zookeeper SolrZookeeper Solr 中的 Zookeeper 超时而没有错误
【发布时间】:2018-12-19 12:36:33
【问题描述】:

我们面临 solr/zookeeper 的问题,其中 zookeeper 在 10000 毫秒后超时。以下错误。

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)

这里可能出了什么问题?

【问题讨论】:

    标签: solr apache-zookeeper solrj solrcloud


    【解决方案1】:

    根据我的经验,ZK 超时几乎总是由于 Solr 节点上的某些问题,而不是 ZK 中的问题。

    您没有提供所有时间戳,但理论上是这样的:

    1. Solr 由于某种原因无法发送心跳
    2. ZK 假设客户端已经离开并关闭连接
    3. Solr 尝试使用 ZK 关闭的连接

    那么为什么 Solr 节点可能无法发送心跳呢?这可能是因为 Solr 节点只是超载了,(线程峰值是原因还是症状?)或者只是在很长的 GC 暂停中工作也可以做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-16
      相关资源
      最近更新 更多