maven依赖
com.101tec zkclient 0.4
测试demo
public class ZooUtil { public static void main(String[] args) { Listll = new ArrayList (); ZkClient zkClient = new ZkClient("172.16.10.107:2181",3000,3000,new SerializableSerializer());// zkClient.createEphemeral("/worker1"); //创建临时节点,回话超时会删除 /** * 获取子目录下的数据 */ List l = zkClient.getChildren("/"); for(String s : l) { System.out.println(s); } /** * 创建节点 */ zkClient.createPersistent("/test1"); /** * 创建子节点 */ zkClient.createPersistent("/test1/test",true); /** * 创建并设置节点的值 */ zkClient.createPersistent("/test1","aaaa"); /** * 写数据,即更新数据,会update,不会append */ zkClient.writeData("/test1","hello"); /** * 写一个对象,要序列化 */ User user = new User(); user.setId(1); user.setName("bbbb"); zkClient.create("/test1",user, CreateMode.PERSISTENT); /** * 删除节点 */ zkClient.delete("/test1"); /** * 递归删除节点和其子节点 */ zkClient.deleteRecursive("/test1"); /** * 读取数据对象 */ Stat stat = new Stat(); User u = zkClient.readData("/test1",stat); System.out.println(u.getName()); /** * 读取简单类型数据 */ String s = zkClient.readData("/test1"); System.out.println(s); /** * 判断节点是否存在 */ boolean b = zkClient.exists("/test1"); /** * 监听节点的变化,节点增加,删除,减少 */ zkClient.subscribeChildChanges("/test1", new IZkChildListener() { @Override public void handleChildChange(String parentPath, List currentChilds) throws Exception { System.out.println("parentPath = " + parentPath); } }); /** * 监听节点数据的变化,子节点数据变化不会监听到 */ zkClient.subscribeDataChanges("/test1", new IZkDataListener() { //数据变化时触发 @Override public void handleDataChange(String dataPath, Object data) throws Exception { } //节点删除时触发 @Override public void handleDataDeleted(String dataPath) throws Exception { } }); }}