zookeeper ——watcher

这应该不是目录

1.watcher定义和说明

1.1定义

在ZooKeeper中,Watcher是一种机制,用于在节点(znode)发生特定事件时通知客户端。这种机制使得ZooKeeper能够提供一种分布式的协调和同步服务,确保多个客户端能够及时响应数据变化。

1.2特性

1.3watcher的通知状态Watcher.Event.KeeperState

1.4watcher的事件类型Event.EventType

1.5基本流程

  1. 客户端注册Watcher: 客户端通过ZooKeeper API(如getData、exists、getChildren等)向服务器注册Watcher。
    注册时,客户端会将Watcher对象存储在客户端的WatchManager中。
    Watcher是一个接口,客户端需要实现其中的process(WatchedEvent event)方法来定义事件处理逻辑。
  2. 服务器处理Watcher注册: 服务器接收到客户端的注册请求后,会将Watcher对象与对应的znode(ZooKeeper中的数据节点)绑定,并记录在内存中。
    服务器不会持久化存储这些Watcher,因此一旦服务器重启,所有注册的Watcher都将失效。
  3. 事件触发与通知: 当znode的状态发生变化(如数据变更、子节点变更等)时,服务器会触发与该znode绑定的Watcher。 服务器将包含事件信息(如事件类型、znode路径等)的WatchedEvent对象封装成通知,并发送给客户端。
  4. 客户端接收并处理通知: 客户端的EventThread线程负责接收来自服务器的Watcher事件通知。 EventThread从WatchManager中取出对应的Watcher对象,并调用其process(WatchedEvent
    event)方法来处理事件。 客户端根据事件类型执行相应的逻辑,如重新获取znode数据、更新本地状态等。
相关推荐
一个有温度的技术博主11 小时前
Redis AOF持久化:用“记账”的方式守护数据安全
redis·分布式·缓存
正经教主12 小时前
【docker基础】第一课、从零开始理解容器技术
docker·云原生·容器·eureka
zs宝来了13 小时前
ZooKeeper ZAB 协议:选举与广播原理解析
zookeeper·广播·选举·zab·一致性协议
2402_8813193015 小时前
引入 Redis 分布式锁解决并发脏写 (Dirty Write)-AI模拟面试的构建rag部分
redis·分布式·面试
蒸蒸yyyyzwd17 小时前
检索系统学习笔记
分布式·学习
Cyber4K18 小时前
【Kubernetes专项】K8s 包工具- Helm 入门到企业实战
云原生·容器·kubernetes
一个有温度的技术博主20 小时前
告别“竹篮打水”:Redis单点瓶颈与分布式缓存架构全解析
redis·分布式·缓存
观无20 小时前
微服务下的跨域问题
微服务·云原生·架构
殷紫川20 小时前
吃透 MinIO:从底层架构到全场景文件上传下载实战,一篇搞定企业级对象存储
分布式·后端
Chuncheng's blog21 小时前
K8S二进制部署exec unable to upgrade connection: Unauthorized异常解决方案
云原生·容器·kubernetes