zookeeper监听集群节点的实现zkclient组件实现方案(Java版)

ZooKeeper Watcher 机制

  1. client 向zookeeper 注册监听
  2. client注册的同时会存储一个WatchManager对象
  3. 向zookeeper发生改变则notification client 并发送一个WatchManager对象,然后client再更新该对象
java 复制代码
package com.jacky.zk.demo;

import org.I0Itec.zkclient.IZkChildListener;
import org.I0Itec.zkclient.ZkClient;

import java.util.List;

/*
* 使用监听器
* */
public class Get_child {
    public static void main(String[] args) throws InterruptedException {
        //    获取到zkClient
        final ZkClient zkClient= new ZkClient("127.0.0.1:2181");
        //    zkClient 对指定目录进行监听(不存在的目录)
        /*
        	ps: 可以监听的事件类型:
            NodeCreated:当ZNode被创建时触发。
            NodeDeleted:当ZNode被删除时触发。
            NodeDataChanged:当ZNode的数据内容发生改变时触发。
            NodeChildrenChanged:当ZNode的子节点列表发生更改时触发(添加或删除子节点)。
            ConnectionStateChanged:与ZooKeeper服务器的连接状态发生变化时触发。   
        * */
        zkClient.subscribeChildChanges("/zk-jk", new IZkChildListener() {
		//  回调
            @Override
            public void handleChildChange(String s, List<String> children) throws Exception {
                System.out.println("error"+children);
            }
        });
        zkClient.createPersistent("/zk-jk");
        Thread.sleep(2000);
        zkClient.createPersistent("/zk-jk/cls-jk");
        Thread.sleep(2000);
        zkClient.deleteRecursive("/zk-jk/cls-jk");
        Thread.sleep(2000);
        zkClient.delete("/zk-jk");
        Thread.sleep(Integer.MAX_VALUE);
    }
}
相关推荐
Rysxt_7 分钟前
Spring Boot 集成 Spring AI OpenAI Starter 教程
java·spring boot·后端·ai
青云交19 分钟前
Java 大视界 -- Java 大数据在智能家居场景联动与用户行为模式挖掘中的应用
java·大数据·智能家居·边缘计算·户型适配·行为挖掘·场景联动
AAA修煤气灶刘哥26 分钟前
ES 高级玩法大揭秘:从算分骚操作到深度分页踩坑,后端 er 速进!
java·后端·elasticsearch
江团1io030 分钟前
深入解析MVCC:多版本并发控制的原理与实现
java·经验分享·mysql
树码小子39 分钟前
Java网络编程:(socket API编程:UDP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·udp
君宝43 分钟前
Linux ALSA架构:PCM_OPEN流程 (二)
java·linux·c++
云深麋鹿1 小时前
数据链路层总结
java·网络
fire-flyer1 小时前
响应式客户端 WebClient详解
java·spring·reactor
北执南念1 小时前
基于 Spring 的策略模式框架,用于根据不同的类的标识获取对应的处理器实例
java·spring·策略模式
王道长服务器 | 亚马逊云1 小时前
一个迁移案例:从传统 IDC 到 AWS 的真实对比
java·spring boot·git·云计算·github·dubbo·aws