当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-讲下Zookeeper中的watch机制

金三银四精选java面试题-讲下Zookeeper中的watch机制

来源:图灵教育
时间:2023-12-22 09:28:47
 

讲下Zookeeper中的watch机制

 

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

 

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

 

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

 

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

 

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

 

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

 

  1. 客户端向 ZooKeeper 服务器注册一个 Watcher 监听,
  2. 把这个监听信息存储到客户端的 WatchManager 中
  3. 当 ZooKeeper 中的节点发生变化时,会通知客户端,客户端会调用相应 Watcher 对象中的回调方法。watch回调是串行同步的