代码部分在:
https://www.malaoshi.top/show_1IXKlV9K32w.html
介绍
Curator 事件有两种模式:
标准的观察模式
缓存监听模式,分为:
- Path Cache
- Node Cache
- Tree Cache(推荐)
Watcher 标准的事件处理器
zookeeper官方的监听方式,Watcher 监听器是一次性的,如果要反复使用,就需要反复的使用usingWatcher提前注册
所以,Watcher监听器 不能应用于节点的数据变动 或者 节点变动 这样的一般业务场景。而是适用于一些特殊的,比如会话超时、授权失败等这样的特殊场景。
Cache缓存监听模式
Watcher监听比较繁琐,Curator引入了Cache来监听ZooKeeper,Cache对ZooKeeper事件监听进行了封装,能够 自动处理反复注册监听
该模式引入了一种本地缓存视图的Cache机制,来实现对Zookeeper服务端事件监听。
Cache事件监听可以理解为一个 本地缓存视图 与 远程Zookeeper视图 的对比过程。Cache提供了 反复注册 的功能。
Cache是一种缓存机制,可以借助Cache实现监听。简单来说,Cache在客户端缓存了znode的各种状态,当感知到zk集群的znode状态变化,会触发event事件,注册的监听器会处理这些事件。
Cache事件监听有3种:
- Path Cache
- Node Cache
- Tree Cache
NodeCache 节点缓存的监听
可以用于监控本节点的新增,删除,更新
PathChildrenCache 子节点监听
用于子节点的监听,监控本节点的子节点被创建、更新或者删除。
注意:
只能监听子节点,监听不到当前节点
不能递归监听,子节点下的子节点不能递归监控
Tree Cache 节点树缓存
Tree Cache可以看做是 NodeCache 和 PathChildrenCache 的合体,Tree Cache观察的是当前ZNode节点的所有数据。而TreeCache节点树缓存是PathChildrenCache的增强,不光能监听子节点,也能监听节点自身。
感谢:
https://blog.csdn.net/crazymakercircle/article/details/85922561