ZooKeeper watcher 机制

Watcher机制是zookeeper三大特性之一,很多ZK的应用场景都都可以看到它的影子,比如集群管理、配置维护、分布式锁等,在此做一个简单梳理

  • watcher 工作原理

   

    由图可看出watcher机制的绝大部分逻辑都由客户端独立存储,比如WatchManager,回调函数等

  • watcher 特性 

   zk 的 watcher 机制具有非常重要的两个特性:

  1. 一次性:一旦一个 watcher 被触发,zk 就会将其从客户端的 WatchManager 中删除,服务端中也会删除该 watcher。zk 的 watcher 机制不适合监听变化非常频繁的场景

  2.轻量级:真正传递给 Server 的是一个简易版的 watcher,回调逻辑存放在客户端,没有在服务端

  •  watcher 事件 
客户端所处状态 事件类型(常量值)触发条件说明 
SyncConnected None(-1)客户端与服务器成 功建立会话此时客户端与服务器处 于连接状态 
NodeCreated(1) Watcher 监听的对 应数据节点被创建
NodeDeleted(2) Watcher 监听的对 应数据节点的数据 内容发生变化 
NodeDataChanged(3) Watcher 监听的节 点的子节点列表发 生变化 
NodeChildrenChanged(4) Watcher 监听的节 点的子节点列表发 生变化
Disconnected(0)None(-1) 客户端与 zk 断开连 接 
 
此时客户端与服务器处 于连接断开状态 
Expired(-112) None(-1) 会话失效此时客户端会话失效, 通常会收到 SessionExpiredException 异常 
AuthFailed None(-1) 使用错误的 scheme 进行权限检查通常会收到 AuthFailedException 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值