监听 Znode 节点
跳到导航
跳到搜索
package org.example;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.recipes.cache.ChildData;
import org.apache.curator.framework.recipes.cache.NodeCache;
import org.apache.curator.framework.recipes.cache.NodeCacheListener;
import org.apache.zookeeper.data.Stat;
import org.junit.Test;
import java.nio.charset.StandardCharsets;
public class Demo3 {
CuratorFramework cf = ZkUtil.cf();
@Test
public void listen() throws Exception {
//1.创建 NodeCache 对象,指定要监听的 Znode
NodeCache nodeCache = new NodeCache(cf, "/qf");
nodeCache.start();
//2.添加一个监听器
nodeCache.getListenable().addListener(new NodeCacheListener() {
@Override
public void nodeChanged() throws Exception {
ChildData childData = nodeCache.getCurrentData();
byte[] data = childData.getData();
Stat stat = childData.getStat();
String path = childData.getPath();
System.out.println("监听的节点是:" + path);
System.out.println("节点现在的数据是:" + new String(data, StandardCharsets.UTF_8));
System.out.println("当前节点的状态是:" + stat);
}
});
System.out.println("开始监听......");
//3.System.in.read();
System.in.read();
}
}
./zkCli.sh 命令行
[zk: localhost:2181(CONNECTED) 5] set /qf qqqqq
[zk: localhost:2181(CONNECTED) 6] set /qf ppppp
[zk: localhost:2181(CONNECTED) 7]
IntelliJ IDEA 控制台
开始监听......
监听的节点是:/qf
节点现在的数据是:qqqqq
当前节点的状态是:8589934594,17179869215,1660698163875,1660716077866,2,0,0,0,5,0,8589934594
监听的节点是:/qf
节点现在的数据是:ppppp
当前节点的状态是:8589934594,17179869217,1660698163875,1660716102689,3,0,0,0,5,0,8589934594