当前位置: 首页 > news >正文

Zookeeper客户端Curator5.2.0节点事件监听CuratorCache用法

 Curator提供了三种Watcher:

(1)NodeCache:监听指定的节点。

(2)PathChildrenCache:监听指定节点的子节点。

(3)TreeCache:监听指定节点和子节点及其子孙节点。

// 根节点
private static final String rootPath = "/root";
// 子节点
private static final String dataPath = "/root/data";
// 孙子节点
private static final String nodePath = "/root/data/stock";

 

1、NodeCache:监听指定的节点

该节点监听的是/root/data/stock,库存操作的是/root/data/stock这个子节点,可以看到监听成功。

NodeCache nodeCache = new NodeCache(curatorFrameworkClient, nodePath);nodeCache.getListenable().addListener(new MyNodeCacheListener());nodeCache.start();

 2、PathChildrenCache:监听指定节点的子节点

该节点监听的是/root/data,库存操作的是/root/data/stock这个子节点,可以看到监听成功。

PathChildrenCache pathChildrenCache = new PathChildrenCache(curatorFrameworkClient, dataPath,true);
pathChildrenCache.getListenable().addListener(new MyPathChildrenCacheListener());
pathChildrenCache.start(PathChildrenCache.StartMode.BUILD_INITIAL_CACHE);

 3、TreeCache:监听指定节点和子节点及其子孙节点

监听的是root节点,库存操作的是/root/data/stock这个子节点,可以看到监听成功

TreeCache treeCache = new TreeCache(curatorFrameworkClient, rootPath);
treeCache.getListenable().addListener(new MyTreeCacheListener());
treeCache.start();

 4、很遗憾上面的三种监听方式都过时了,取而代之的是CuratorCacheListener

 该监听方式直接替换了上面的三种过时的监听方式。

CuratorCache curatorCache = CuratorCache.build(curatorFrameworkClient, dataPath);
CuratorCacheListener listener = CuratorCacheListener// 1、监听指定的节点// .builder().forNodeCache(new MyNodeCacheListener())// 2、监听指定节点及其子节点的数据变化.builder().forPathChildrenCache(dataPath, curatorFrameworkClient, new MyPathChildrenCacheListener())// 3、监听指定节点及其子节点孙子节点的数据变化// .builder().forTreeCache(curatorFrameworkClient, new MyTreeCacheListener()).build();
curatorCache.listenable().addListener(listener);
curatorCache.start();
http://www.lryc.cn/news/43976.html

相关文章:

  • C++ using:软件设计中的面向对象编程技巧
  • 修建灌木顺子日期
  • 深入学习JavaScript系列(七)——Promise async/await generator
  • Mybatis中的Map的使用和模糊查询的需求实现及其防SQL注入优化
  • 【redis】redis缓存更新策略
  • LeetCode刷题--复制带随机指针的链表
  • 关于我的第一台电脑 华硕
  • 【华为OD机试 2023最新 】 最大化控制资源成本(C++ 100%)
  • leetcode 有序数组的平方(977)
  • 文本三剑客之awk
  • RK3568平台开发系列讲解(驱动基础篇)IS_ERR函数的使用
  • 特殊的类之注解
  • 商业分享:盲盒电商开启电商新可能
  • 【计算机架构】如何计算 CPU 时间
  • 银行数字化转型导师坚鹏:银行行长如何进行数字化转型
  • N32G45x学习笔记--- gpio引脚复用
  • ArcGIS Pro中使用深度学习的高分辨率土地覆盖制图
  • 【学习笔记】「NOI2018」冒泡排序
  • 【Ruby学习笔记】3.Ruby 语法及数据类型
  • 华为OD机试题【字符匹配】用 Java 解 | 含解题说明
  • JavaScript数组对象的浅拷贝与深拷贝(二)实现对象深拷贝的方法(5种)
  • iPhone屏幕适配(之屏幕尺寸)
  • 手机变砖修复神器之 8 个的 Android手机系统修复工具
  • 稀疏矩阵(Sparse Matrix)
  • 深度学习中的损失函数
  • English Learning - L2 语音作业打卡 辅音咬舌音 [θ] [ð] Day29 2023.3.21 周二
  • 【原始者-综述】
  • C++内存模型
  • 八股+面经
  • MySQL更新数据流程