ZooKeeper 的 Watcher 机制?

发布于

一、定义

客户端可以在 ZNode 上注册 Watcher,当节点状态变化时,服务端通知客户端,触发回调。

二、特性

  • 一次性:Watcher 触发后失效,需重新注册。
  • 轻量:只发送事件类型和路径,不发送数据。
  • 异步:通知是异步发送的。

三、事件类型

  • NodeCreated:节点创建。
  • NodeDeleted:节点删除。
  • NodeDataChanged:节点数据变化。
  • NodeChildrenChanged:子节点变化。

四、应用

  • 配置中心:监听配置节点,数据变化自动更新。
  • 服务发现:监听服务节点列表变化。

五、Curator 客户端

Apache Curator 封装了 Watcher 的一次性问题,提供 NodeCache、PathChildrenCache 等持续监听。