ZooKeeper 的 watcher 机制主要包括客户端线程、客户端 WatchManager 和 ZooKeeper 服务器三部分。
工作方式:客户端在向 zk 服务器注册 Watcher 的同时,会将 Watcher 对象存储在客户端的 WatchManager 中,当 zk 服务器端触发 Watcher 事件后,会向客户端发送通知,客户端线程从 WatchManager 中取出相应的 Watcher 对象来执行回调逻辑。
工作方式:
1、服务端推送变更事件。
2、客户端根据推送,到服务端获取变更内容。
特性总结:
1、一次性,watcher 仅触发一次,触发后立即销毁。
2、客户端串行执行,watcher 多个事件,需要注意watcher的性能。
3、轻量推送,只推送状态,具体变更需要客户端主动获取。
实现方式:
待补充……