一、介绍
1、Zookeeper 引入watcher机制来实现发布/订阅功能,能够让多个订阅者同时监听某一个节点对象,当这个节点对象状态发生变化时,会通知所有订阅者。
2、流程
1)Zookeeper的watcher机制主要包括客户端线程、客户端WatchManager、Zookeeper服务器三个部分。
2)工作流程简单描述:
a:客户端在向Zookeeper服务器注册Watcher的同时,会将Watcher对象存储在客户端的WatchManager中;
b:当Zookeeper服务器端触发Watcher事件后,会向客户端发送通知,
c:客户端线程从WatchManager中取出对应的Watcher对象来执行回调逻辑
3、两种 Watcher
1)NodeCache
a:监听数据节点的内容变更
b:监听节点的创建,即如果指定的节点不存在,则节点创建后,会触发这个监听
2)PathChildrenCache
a:监听指定节点的子节点变化情况
b:包括新增子节点、子节点数据变更和子节点删除