美文网首页
zookeeper事件通知

zookeeper事件通知

作者: 金煜博 | 来源:发表于2021-05-09 23:33 被阅读0次

什么是zookeeper事件通知

zookeeper事件通知可以监听每个节点的变化。如:删除 修改 添加操作

zookeeper的事件通知方式有

监听数据变化 监听状态变化 监听子节点变化

示例代码

public class TestV1 {
    //参数1 连接地址
    private static final String ADDR = "192.168.100.128:2181";
    // 参数2 zk超时时间
    private static final int TIMEOUT = 5000;
    // 计数器
    private static CountDownLatch countDownLatch = new CountDownLatch(1);

    public static void main(String[] args) throws InterruptedException {

        // 创建我们的zk连接
        ZkClient zkClient = new ZkClient(ADDR, TIMEOUT);
        String parentPath = "/jyb-service";
        // 监听节点发生的变化 监听子节点是否有发生变化 如果发生变化都可以获取到回调通知
        zkClient.subscribeChildChanges(parentPath, new IZkChildListener() {
            @Override
            public void handleChildChange(String s, List<String> list) throws Exception {
                System.out.println("节点信息:" + s + ",发生了变化");
                list.forEach((t) -> System.out.println(t));
            }
        });
        // 监听节点值是否发生变化
       /* zkClient.subscribeDataChanges(parentPath , new IZkDataListener() {
            @Override
            // 节点的内容是否发生变化
            public void handleDataChange(String s, Object o) throws Exception {
                System.out.println("key:" + s + ",value:" + o);
            }

            @Override
            // 监听该节点是否被删除
            public void handleDataDeleted(String s) throws Exception {
                System.out.println("节点信息被删除:" + s);
            }
        });
        Thread.sleep(3000);
        //修改值内容
        zkClient.writeData(parentPath, "jyb-3535");*/

        for (;;){}
       // zkClient.close();
    }
}

相关文章

网友评论

      本文标题:zookeeper事件通知

      本文链接:https://www.haomeiwen.com/subject/cdcvdltx.html