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); } }
热门文章
- Hibernate框架的使用(二)
- 宠物粮市场容量(中国宠物粮市场)
- 「12月23日」最高速度18.6M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 小动物疫苗注射证明在哪里办理手续(小动物疫苗本)
- Java-多线程-线程安全-同步代码块
- 「12月12日」最高速度18.5M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接
- 猫一般养多久认主人(猫养多久才认主人)
- 长沙宠物领养中心在哪个位置 长沙宠物领养中心在哪个位置啊
- 动物注射疫苗的流程图怎么画简单(动物疫苗注射方法)
- 「12月1日」最高速度18.1M/S,2024年Clash Nyanpasu每天更新免费节点订阅链接