watch机制,客户端使用NIO通讯模式监听服务端的调用
zkCli客户端示例
#监听一个节点,当节点发生变化会通知监听的客户端 get -w 节点名#不能监听子节点变化get -w /testNode
#监听子节点#不能监听子节点的子节点ls -w /testNode
#监听所有的子节点ls -R -w /testNode
curator客户端监听示例
@Testpublic void addNodeListener() throws Exception{ NodeCache nodeCache = new NodeCache(curatorframework, "/test-node1"); nodeCache.getListenable().addListener(new NodeCacheListener() { @Override public void nodeChanged() throws Exception { printZk(); } }); nodeCache.start(); System.in.read();}public void printZk() throws Exception{ byte[] bytes = curatorframework.getData().forPath("/test-node1"); System.out.println(new String(bytes));}
修改test-node1节点,java控制台输出节点变更的值
[zk: localhost:2181(CONNECTED) 10] set /test-node1 123[zk: localhost:2181(CONNECTED) 11] set /test-node1 333333