Apache zookeeper 与策展人和动物园管理员一起进行领导人选举

Apache zookeeper 与策展人和动物园管理员一起进行领导人选举,apache-zookeeper,apache-curator,Apache Zookeeper,Apache Curator,我正在运行ZooKeeper的3个实例,配置如下: tickTime=2000 initLimit=10 syncLimit=5 dataDir=/tmp/zookeeper1 clientPort=2181 maxClientCnxns=1000 server.1=127.0.0.1:2888:3888 server.2=127.0.0.1:2889:3889 server.3=127.0.0.1:2890:3890 我正在使用此处给出的领导人选举示例代码: TestingServer的代

我正在运行ZooKeeper的3个实例,配置如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper1
clientPort=2181
maxClientCnxns=1000
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890
我正在使用此处给出的领导人选举示例代码:

TestingServer的代码运行良好,但当我将连接字符串更改为:
“127.0.0.1:2181127.0.0.1:2182127.0.0.1:2183”
时,会出现异常:

[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Opening socket connection to server 127.0.0.1/127.0.0.1:2183. Will not attempt to authenticate using SASL (unknown error)
[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Socket connection established, initiating session, client: /127.0.0.1:56111, server: 127.0.0.1/127.0.0.1:2183
[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Session establishment complete on server 127.0.0.1/127.0.0.1:2183, sessionid = 0x3521552283c0000, negotiated timeout = 40000
[main-EventThread] INFO org.apache.curator.framework.state.ConnectionStateManager - State change: CONNECTED
[main-SendThread(127.0.0.1:2183)] INFO org.apache.zookeeper.ClientCnxn - Unable to read additional data from server sessionid 0x3521552283c0000, likely server has closed socket, closing socket connection and attempting reconnect
[main-EventThread] INFO org.apache.curator.framework.imps.EnsembleTracker - New config event received: null
[main-EventThread] ERROR org.apache.curator.framework.imps.CuratorFrameworkImpl - Background exception was not retry-able or retry gave up
java.lang.NullPointerException
    at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106)
    at org.apache.curator.framework.imps.EnsembleTracker.processConfigData(EnsembleTracker.java:163)
    at org.apache.curator.framework.imps.EnsembleTracker.access$200(EnsembleTracker.java:48)
    at org.apache.curator.framework.imps.EnsembleTracker$2.processResult(EnsembleTracker.java:134)
    at org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:829)
    at org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:611)
    at org.apache.curator.framework.imps.WatcherRemovalFacade.processBackgroundOperation(WatcherRemovalFacade.java:151)
    at org.apache.curator.framework.imps.GetConfigBuilderImpl$2.processResult(GetConfigBuilderImpl.java:210)
    at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:619)
    at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:528)
[main-EventThread] INFO org.apache.curator.framework.state.ConnectionStateManager - State change: SUSPENDED
[主发送线程(127.0.0.1:2183)]INFO org.apache.zookeeper.ClientCnxn-打开到服务器127.0.0.1/127.0.0.1:2183的套接字连接。不会尝试使用SASL进行身份验证(未知错误)
[主发送线程(127.0.0.1:2183)]INFO org.apache.zookeeper.ClientCnxn-已建立套接字连接,启动会话,客户端:/127.0.0.1:56111,服务器:127.0.0.1/127.0.0.1:2183
[主发送线程(127.0.0.1:2183)]INFO org.apache.zookeeper.ClientCnxn-在服务器127.0.0.1/127.0.0.1:2183上完成会话建立,会话ID=0x3521552283c0000,协商超时=40000
[main EventThread]INFO org.apache.curator.framework.state.ConnectionStateManager-状态更改:已连接
[主发送线程(127.0.0.1:2183)]INFO org.apache.zookeeper.ClientCnxn-无法从服务器会话ID 0x3521552283c0000读取其他数据,服务器可能已关闭套接字,正在关闭套接字连接并尝试重新连接
[main EventThread]INFO org.apache.curator.framework.imps.EnsembleTracker-收到的新配置事件:null
[main EventThread]错误org.apache.curator.framework.imps.CuratorFrameworkImpl-后台异常无法重试或重试已放弃
java.lang.NullPointerException
位于java.io.ByteArrayInputStream。(ByteArrayInputStream.java:106)
位于org.apache.curator.framework.imps.EnsembleTracker.processConfigData(EnsembleTracker.java:163)
访问org.apache.curator.framework.imps.EnsembleTracker.access$200(EnsembleTracker.java:48)
位于org.apache.curator.framework.imps.EnsembleTracker$2.processResult(EnsembleTracker.java:134)
位于org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:829)
位于org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:611)
位于org.apache.curator.framework.imps.WatcherRemovalFacade.processBackgroundOperation(WatcherRemovalFacade.java:151)
位于org.apache.curator.framework.imps.GetConfigBuilderImpl$2.processResult(GetConfigBuilderImpl.java:210)
位于org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:619)
位于org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:528)
[main EventThread]INFO org.apache.curator.framework.state.ConnectionStateManager-状态更改:挂起

可能是什么问题?

我遇到了同样的问题。我认为这可能与Zookeeper 3.5.1客户端CNXN有关。即使我回到curator 2.6.0,我仍然看到相同的堆栈跟踪。发送的
GET\u CONFIG
事件类型不包含事件数据

我的堆栈跟踪如下所示:

org.apache.curator.framework.imps.CuratorFrameworkImpl: Background exception was not retry-able or retry gave up ! java.lang.NullPointerException: null ! at java.io.ByteArrayInputStream.(ByteArrayInputStream.java:106) ! at org.apache.curator.framework.imps.EnsembleTracker.processConfigData(EnsembleTracker.java:163) ! at org.apache.curator.framework.imps.EnsembleTracker.access$200(EnsembleTracker.java:48) ! at org.apache.curator.framework.imps.EnsembleTracker$2.processResult(EnsembleTracker.java:134) ! at org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:829) ! at org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:611) ! at org.apache.curator.framework.imps.WatcherRemovalFacade.processBackgroundOperation(WatcherRemovalFacade.java:151) ! at org.apache.curator.framework.imps.GetConfigBuilderImpl$2.processResult(GetConfigBuilderImpl.java:210) ! at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:619) ! at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:528) org.apache.curator.framework.imps.CuratorFrameworkImpl:后台异常无法重试或重试已放弃 ! java.lang.NullPointerException:null ! 位于java.io.ByteArrayInputStream。(ByteArrayInputStream.java:106) ! 位于org.apache.curator.framework.imps.EnsembleTracker.processConfigData(EnsembleTracker.java:163) ! 访问org.apache.curator.framework.imps.EnsembleTracker.access$200(EnsembleTracker.java:48) ! 位于org.apache.curator.framework.imps.EnsembleTracker$2.processResult(EnsembleTracker.java:134) ! 位于org.apache.curator.framework.imps.CuratorFrameworkImpl.sendToBackgroundCallback(CuratorFrameworkImpl.java:829) ! 位于org.apache.curator.framework.imps.CuratorFrameworkImpl.processBackgroundOperation(CuratorFrameworkImpl.java:611) ! 位于org.apache.curator.framework.imps.WatcherRemovalFacade.processBackgroundOperation(WatcherRemovalFacade.java:151) ! 位于org.apache.curator.framework.imps.GetConfigBuilderImpl$2.processResult(GetConfigBuilderImpl.java:210) ! 位于org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:619) ! 位于org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:528)
如果使用Zookeeper 3.5.1,那么curator recipes 3.2.1+将修复此问题。

我使用的是curator Framework 3.0.0版。我用2.9.1版做的。不确定问题是什么。如果你愿意,请将此作为错误发布在-看起来它可能是3.0的新问题。0@Randgalt谢谢在此完成: