Zookeeper的Watcher机制及Watcher原理分析
1 什么是Watcher监听机制
Watcher 监听机制是 Zookeeper中非常重要的特性,我们基于zookeeper上创建的节点,可以对这些节点绑定监听事件,比如可以监听节点数据变更、节点删除、子节点状态变更等事件,通过这个事件机制,可以基于zookeeper实现分布式锁,发布订阅(多个订阅者同时监听某一个主题对象,当这个主题对象自身状态发生变化时,会通知所有订阅者)等功能。
Watcher 特性:当数据发生变化的时候, zookeeper会产生一个watcher事件,并且会发送到客户端。但是客户端只会收到一次通知。如果后续这个节点再次发生变化,那么之前设置watcher 的客户端不会再次收到消息。(Watcher是一次性的操作)。可以通过循环监听去达到永久监听效果。
如何注册事件机制:
ZooKeeper的Watcher机制,总的来说可以分为三个过程:客户端注册Watcher、服务器处理
Watcher和客户端回调Watcher客户端。注册watcher有3种方式,getData、exists、getChildren;<