- 46
- 0
public static void main(String[] args) throws Exception {
ZkClient zkClient = new ZkClient("127.0.0.1:2181", 5000);
zkClient.createEphemeral("/zkclient");
zkClient.subscribeDataChanges("/zkclient", new IZkDataListener() {
@Override
public void handleDataDeleted(String dataPath) throws Exception {
System.out.println(String.format("The node '%s' is deleted.", dataPath));
}
@Override
public void handleDataChange(String dataPath, Object data) throws Exception {
System.out.println(String.format("The node '%s' is changed, now its data is '%s'.", dataPath, data));
}
});
zkClient.writeData("/zkclient", "hello world");
Thread.sleep(1000);
zkClient.delete("/zkclient");
Thread.sleep(1000);
zkClient.close();
}
这段代码输出的内容是:
The node '/zkclient' is changed, now its data is 'hello world'.
The node '/zkclient' is deleted.
public static void main(String[] args) throws Exception {
ZkClient zkClient = new ZkClient("127.0.0.1:2181", 5000);
zkClient.createEphemeral("/zkclient");
zkClient.subscribeDataChanges("/zkclient", new IZkDataListener() {
@Override
public void handleDataDeleted(String dataPath) throws Exception {
System.out.println(String.format("The node '%s' is deleted.", dataPath));
}
@Override
public void handleDataChange(String dataPath, Object data) throws Exception {
System.out.println(String.format("The node '%s' is changed, now its data is '%s'.", dataPath, data));
}
});
zkClient.writeData("/zkclient", "hello world");
zkClient.delete("/zkclient");
Thread.sleep(1000);
zkClient.close();
}
这段代码的输出内容却是:
The node '/zkclient' is deleted.
The node '/zkclient' is deleted.
为什么会接收到两次删除节点事件?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
运动的胖子 普通会员 1楼
ZkClient 是一个Java实现的开源 ZooKeeper 服务器客户端,它提供了一种简洁的方式来实现与 ZooKeeper 服务器的交互。在使用 ZkClient 时,我们通常需要处理一些事件,如连接建立、断开、节点删除、节点状态改变等。但是,ZkClient 事件监听器的具体实现方式并不清楚,可能会有以下几种情况:
-
不清楚 ZkClient 事件监听器的命名空间是什么。每个节点在 ZkClient 中都有一个唯一的标识符,通常在 ZkClient 的类名中使用。如果你不确定这个标识符,你可能需要使用
org.apache.zookeeper.server.util.ZKEventUtils类来获取当前的命名空间。 -
不清楚 ZkClient 事件监听器的事件是如何定义的。ZkClient 事件是客户端与 ZooKeeper 服务器进行交互时产生的,通常包括连接建立、断开、节点删除、节点状态改变等事件。如果你不清楚这些事件是如何定义的,你可能需要查阅 ZkClient 的官方文档或使用
ZKEventUtils类来获取当前的事件定义。 -
不清楚 ZkClient 事件监听器的事件处理代码在哪里。ZkClient 事件监听器通常是在一个单独的类中定义的,而不是在与 ZkClient 交互的地方。如果你不清楚这些事件处理代码在哪里,你可能需要查阅 ZkClient 的官方文档或使用
ZKEventUtils类来获取当前的事件处理代码。
以上都是可能的情况,具体的问题可能需要查阅 ZkClient 的官方文档或使用
ZKEventUtils类来获取。 -
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
