我使用的是Apache v4.3.0 (ZKv3.5.8),我注意到在某些断开/重新连接的场景中,我停止将重新连接的事件发送到注册的监听器/s。
CuratorFramework client = ...;
// retry policy is RetryUntilElapsed with Integer.MAX_VALUE
// sessionTimeout is 15 sec
// connectionTimeout is 5 sec
client.getConnectionStateListenable().addListener(new ConnectionStateListener()...尽管我确实看到ConnectionStateManager打印状态更改:
[org.apache.zookeeper.ClientCnxn] - Client session timed out, have not heard from server in 15013ms for sessionid 0x10000037e340012, closing socket connection and attempting reconnect
[org.apache.zookeeper.ClientCnxn] - Opening socket connection to server
...
[org.apache.curator.ConnectionState] - Session expired event received
[org.apache.zookeeper.ClientCnxn] - Session establishment complete on server
[org.apache.curator.framework.state.ConnectionStateManager] - State change: RECONNECTED通常是在我看到我的听众调用stateChanged之后,但并不总是这样。
CuratorFramework客户端在注册不同侦听器的多个组件之间共享。我没有看到任何限制,每个侦听器只有一个客户端。但是,当我不分享的时候,问题就不会再发生了。
关于如何继续调试此问题的建议吗?
谢谢你,梅龙
发布于 2020-09-25 17:00:35
这似乎是在策展人5.0.0 - https://issues.apache.org/jira/browse/CURATOR-525中修复的bug --如果您可以用5.0.0进行测试,看看它是否修复了问题。
https://stackoverflow.com/questions/64062946
复制相似问题