美文网首页
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