首页 > 解决方案 > org.apache.curator.ConnectionState 连接字符串超时

问题描述

对于由 Zookeeper 管理的 Solr 实例,我一直面临这个问题。

Zookeeper 似乎能够向 Zookeeper 发送请求,Zookeeper 暂时接受请求然后拒绝它。

在 Zookeeper 日志中,我一直看到此错误:

INFO  org.apache.zookeeper.ZooKeeper.Client.environment:user.dir=/ [1635628661@qtp-2049348234-50]
INFO  org.apache.zookeeper.ZooKeeper  Initiating client connection, connectString=localhost:2181 sessionTimeout=150000 watcher=org.apache.curator.ConnectionState@c4f2fbd [1635628661@qtp-2049348234-50]
INFO  org.apache.zookeeper.ClientCnxn  Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) [1635628661@qtp-2049348234-50-SendThread(localhost:2181)]
INFO  org.apache.zookeeper.ClientCnxn  Socket connection established to localhost/127.0.0.1:2181, initiating session [1635628661@qtp-2049348234-50 SendThread(localhost:2181)]
ERROR org.apache.curator.ConnectionState  Connection timed out for connection string (localhost:2181) and timeout (15000) / elapsed (15290) [1635628661@qtp-204934823450]
org.apache.curator.CuratorConnectionLossException: KeeperErrorCode = ConnectionLoss
at org.apache.curator.ConnectionState.checkTimeouts(ConnectionState.java:191)
at org.apache.curator.ConnectionState.getZooKeeper(ConnectionState.java:86)
at org.apache.curator.CuratorZookeeperClient.getZooKeeper(CuratorZookeeperClient.java:113)
at org.apache.curator.framework.imps.CuratorFrameworkImpl getZooKeeper(CuratorF

任何帮助在这里表示赞赏。

标签: solrapache-zookeeper

解决方案


根据日志,您在 localhost:2181 上打开了套接字,因此行:

INFO  org.apache.zookeeper.ClientCnxn  Socket connection established to localhost/127.0.0.1:2181, initiating session [1635628661@qtp-2049348234-50 SendThread(localhost:2181)]

像这样的状态,好的,我们找到了一个打开的套接字,现在我们尝试写入一些数据。它发送连接请求,发送 sessionId 和密码。如果会话尚未建立 - 它发送 0 作为会话 ID,但发送密码

如果您将启用调试输出,您将在日志中看到类似

Session establishment request sent on <remote address>

您询问的日志记录 -

ERROR org.apache.curator.ConnectionState  Connection timed out for connection string (localhost:2181) and timeout (15000) / elapsed (15290) [1635628661@qtp-204934823450]

与策展人本身有关。如果客户端未连接 - 它调用 checkTimeout() 并且如果检查超时结果为“CONNECTION_TIMEOUT”,则生成如上所述的记录。

信息不多,但我猜测您的本地主机上有 zookeper,但连接被拒绝,可能需要密码或其他原因。

希望它会有所帮助。

(我的回答是基于这里主人的策展人代码-> https://github.com/apache/curator


推荐阅读