公众号:架构师与哈苏
关注公众号进入it交流群! 公众号:架构师与哈苏 不定时都会推送一些实用的干货。。。

客户端,可以通过在znode上设置watch,实现实时监听znode的变化

Watch事件是一个一次性的触发器,当被设置了Watch的数据发生了改变的时候,则服务器将这个改变发送给设置了Watch的客户端

  • 父节点的创建,修改,删除都会触发Watcher事件
  • 子节点的创建,删除会触发Watcher事件

一次性:一旦被触发就会移除,再次使用需要重新注册,因为每次变动都需要通知所有客户端,一次性可以减轻压力,3.6.0默认持久递归,可以触发多次

轻量: 只通知发生了事件,不会告知事件内容,减轻服务器和带宽压力

Watcher机制包括三个角色:客户端线程,客户端的WatchManager以及Zookeeper服务器

  1. 客户端向Zookerper服务器注册一个Watcher监听
  2. 把这个监听信息存储到客户端的WatchManager中
  3. 当Zookeeper中的节点发生变化时,会通知客户端,客户端会调用相应Watcher对象中的回调方法。watch回调是串行同步的。
posted on 2021-11-08 10:15  公众号/架构师与哈苏  阅读(116)  评论(0)    收藏  举报