use*_*181 4 apache-zookeeper apache-curator
我在我的项目中使用Apache Curator。在CuratorFramework失去与ZooKeeper服务器的连接之后,它会自动重新连接,但似乎它失去了我设置的所有手表,并且不再收到任何通知。如果未断开连接并重新启动连接,手表将按预期工作。
这是Curator的错误,还是我做错了什么?设置手表的代码如下:
CuratorFramework framework = CuratorFrameworkFactory.newClient(connectString, SESSION_TIMEOUT_MS, 0, new ExponentialBackoffRetry(CONNECT_TIMEOUT_MS, CONNECT_RETRY_COUNT));
framework.start();
framework.getChildren().usingWatcher(watcher).forPath(path);
Run Code Online (Sandbox Code Playgroud)
谢谢,
Watcher如果连接发生变化,您应该通知您。如果是这样,EventType上WatchedEvent会None,使用为契机,重新启动您的手表:
@Override
public void process(WatchedEvent event) {
if (event.getType == Event.EventType.None && event.getState() == Event.KeeperState.SyncConnected){
framework.getChildren().usingWatcher(this).forPath(path);
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1229 次 |
| 最近记录: |