# Watch 机制 🔨
Watch
(事件监听器),是Zookeeper
中的一个很重要的特性。Zookeeper
允许用户在指定节点上注册一些Watch
,并且在一些特定事件触发的时候,ZooKeeper
服务端会将事件通知到感兴趣的客户端上去,该机制是Zookeeper实现分布式协调服务的重要特性。
# Watch 特性
- 主动推送:
Watch
被触发时,由Zookeeper
服务器主动将更新推送(PUSH
)给客户端,而不需要客户端轮询。 - 一次性: 数据变化时,Watch 只会被触发一次。如果客户端想得到后续更新的通知,必须要在
Watch
被触发后重新注册一个Watch
。 - 可见性: 如果一个客户端在读请求中附带
Watch
,Watch
被触发的同时再次读取数据,客户端在得到Watch
消息之前肯定不可能看到更新后的数据。换句话说,更新通知先于更新结果。 - 顺序性: 如果多个更新触发了多个
Watch
,那Watch
被触发的顺序与更新顺序一致。