1 监听某个节点的数据变化
@Test
public void test1() throws Exception {
NodeCache nodeCache = new NodeCache(client, "/watcher1");
nodeCache.start();
nodeCache.getListenable().addListener(new NodeCacheListener() {
@Override
public void nodeChanged() throws Exception {
ChildData currentData = nodeCache.getCurrentData();
String path = currentData.getPath();
System.out.println("节点路径:" + path);
Stat stat = currentData.getStat();
byte[] data = currentData.getData();
System.out.println("节点数据:" + new String(data));
}
});
Thread.sleep(500000);
nodeCache.close();
}
2 监听某个节点的子节点的数据变化
@Test
public void test2() throws Exception {
PathChildrenCache nodeCache = new PathChildrenCache(client, "/parent", true);
nodeCache.start();
nodeCache.getListenable().addListener(new PathChildrenCacheListener() {
@Override
public void childEvent(CuratorFramework curatorFramework, PathChildrenCacheEvent event) throws Exception {
PathChildrenCacheEvent.Type type = event.getType();
System.out.println("事件类型: " + type);
String path = event.getData().getPath();
Stat stat = event.getData().getStat();
byte[] data = event.getData().getData();
System.out.println("节点数据:" + new String(data));
}
});
Thread.sleep(500000);
nodeCache.close();
}