ZooKeeper 的 Watcher 机制?
Zookeeper 面试题发布于
一、定义
客户端可以在 ZNode 上注册 Watcher,当节点状态变化时,服务端通知客户端,触发回调。
二、特性
- 一次性:Watcher 触发后失效,需重新注册。
- 轻量:只发送事件类型和路径,不发送数据。
- 异步:通知是异步发送的。
三、事件类型
- NodeCreated:节点创建。
- NodeDeleted:节点删除。
- NodeDataChanged:节点数据变化。
- NodeChildrenChanged:子节点变化。
四、应用
- 配置中心:监听配置节点,数据变化自动更新。
- 服务发现:监听服务节点列表变化。
五、Curator 客户端
Apache Curator 封装了 Watcher 的一次性问题,提供 NodeCache、PathChildrenCache 等持续监听。