博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zookeeper之Curator(1)客户端对节点的一些监控事件的api使用
阅读量:6609 次
发布时间:2019-06-24

本文共 2330 字,大约阅读时间需要 7 分钟。

《一》节点改变事件的监听

1 public class CauratorClientTest { 2      3     //链接地址 4     private static  String zkhost="172.19.27.246:2181"; 5     //sessionTimeoutMs会话超时时间,单位为毫秒。默认是60000ms 6     private static  int  sessionTimeoutMs=5000; 7     //connectionTimeoutMs连接创建超时时间,单位毫秒,默认15000ms 8     private static  int connectionTimeOutMs=3000; 9     //重连策略10     private static  int maxRetries;11     //    zookeeper连接间隔时间基数12     private static int baseSleepTimeMs=1000;13     //系统域dev,qa,pro14     private static String domain="dev";15     16     17     /**18  * 数据节点被改变的事件。能监听节点存储的数据发生变化,和节点被删除的事件。19  * 节点被删除后,会调用回调方法。20  */21 public static void testNodeChangeEvent() throws Exception{22     CuratorFramework client = CuratorFrameworkFactory.newClient(zkhost,sessionTimeoutMs,connectionTimeOutMs, new ExponentialBackoffRetry(baseSleepTimeMs,maxRetries));23     client.start();24     25     String path=client.create().creatingParentContainersIfNeeded().withMode(CreateMode.EPHEMERAL).forPath("/dev/sxf/cd","sxf".getBytes());26     27     NodeCache nodeCache=new NodeCache(client,path);28     29     /**30      * 注册数据节点中存储的数据被改变的事件31      */32     nodeCache.getListenable().addListener(new NodeCacheListener() {33         /**34          * 数据节点变化事件35          */36         @Override37         public void nodeChanged() throws Exception {38             39             ChildData data=nodeCache.getCurrentData();40             if(data==null){41                 System.out.println("节点被删除");42                 return;43             }44             45             Stat  stat=data.getStat();46             47             int a=stat.getNumChildren();48             49             System.out.println("子节点的个数为==>"+a);50             51             System.out.println("节点数据被改变改变后的数值为==>"+new String(nodeCache.getCurrentData().getData()));52             53         }54     });55     56     nodeCache.start();57     58     59     //当前线程休眠几秒60     Thread.sleep(10000L);61     62     63     client.setData().forPath("/dev/sxf/cd","中国人民解放军".getBytes());64     65     66     //当前线程休眠几秒67     Thread.sleep(10000L);68     client.setData().forPath("/dev/sxf/cd","第二次改变".getBytes());69     70     71     //当前线程休眠几秒72     Thread.sleep(10000L);73     client.delete().forPath("/dev/sxf/cd");74     75     76     77     Thread.sleep(100000L);78     79 }80 81 }
View Code

 

转载地址:http://whsso.baihongyu.com/

你可能感兴趣的文章
使用ReaderWriterLock类实现多用户读/单用户写同步
查看>>
springmvc + mybatis + ehcache + redis架构
查看>>
Python正则表达式初识(十)附正则表达式总结
查看>>
APICLOUD 1.1.0 开发环境搭建
查看>>
《Cadence 16.6电路设计与仿真从入门到精通》——导读
查看>>
Confluence 6 如何让我的小组成员知道那些内容是重要的
查看>>
找到一个适合的分布式文件系统之各种分布式文件系统优缺点对比
查看>>
索引失效的几个原因
查看>>
五险一金,你清楚吗?
查看>>
Ip核_fifo
查看>>
repquota命令--Linux命令应用大词典729个命令解读
查看>>
rabbitmq 管理及常用命令
查看>>
HTTP要被抛弃? 亚洲诚信携手宝塔开启HTTPS加密快速通道
查看>>
6.6 tar打包
查看>>
Spring MVC核心技术
查看>>
TCP协议如何保证传输的可靠性
查看>>
Spring Cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
查看>>
软件开发各阶段交付物列表
查看>>
ntp服务器的搭建
查看>>
Tair学习小记
查看>>