ZooKeeper的java客户端api的监听功能代码示范
package cn.edu360.zk.demo; import java.util.List; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.Watcher.Event.EventType; import org.apache.zookeeper.Watcher.Event.KeeperState; import org.apache.zookeeper.ZooKeeper; import org.junit.Before; import org.junit.Test; public class ZookeeperWatchDemo { ZooKeeper zk = null; @Before public void init() throws Exception { zk = new ZooKeeper("hadoop1:2181,hadoop2:2181,hadoop3:2181", 2000, new Watcher() { @Override public void process(WatchedEvent event) { if(event.getState() == KeeperState.SyncConnected && event.getType() == EventType.NodeDataChanged) { System.out.println(event.getPath()); //收到的事件所发生的节点路径 System.out.println(event.getType()); //收到的事件的类型 System.out.println("赶紧换照片,换性感的浴衣..."); //收到事件后我们的处理逻辑 try { zk.getData("/mygirls", true, null); } catch (KeeperException | InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else if(event.getState() == KeeperState.SyncConnected && event.getType() == EventType.NodeChildrenChanged) { System.out.println("子节点变化了。"); } } }); } @Test public void testGetWatch() throws Exception { byte[] data = zk.getData("/mygirls",true ,null); //监听节点变化 List<String> children = zk.getChildren("/mygirls", true); //监听子节点变化事件 System.out.println(new String(data,"UTF-8")); Thread.sleep(Long.MAX_VALUE); } }
热门文章
- 天津宠物救助站领养宠物多少钱一只(天津宠物救助站领养宠物多少钱一只猫)
- 「11月16日」最高速度21M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 动物疫苗间隔时间多久打一次(动物疫苗多长时间内打)
- maven项目关于target目录没有生成xml、properties等文件问题
- 「8月19日」最高速度19.5M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 「9月21日」最高速度22.7M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 「10月25日」最高速度21.2M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 「8月21日」最高速度21.8M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 用指针低三位存放额外信息的优化方法 – 程鑫 _在线工具
- 「12月29日」最高速度18M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接