跳到主要内容

Zookeeper 对节点的 watch 监听通知是永久的吗? ?

参考答案:

ZooKeeper对节点的watch监听通知不是永久的。这种设计主要是出于一次性触发和避免资源泄漏的考虑。一旦某个watch被触发(例如,当节点数据改变或节点被删除时),ZooKeeper会发送通知给相应的客户端,并立即移除该watch。如果需要持续监听节点的变化,客户端可以在接收到watch事件通知后,再次对节点设置watch,从而实现类似永久监听的效果。但这种方式仍然依赖于每次事件触发后的重新设置,而不是真正的永久监听。

然而,从ZooKeeper版本3.5.0开始,引入了永久监听(persistent watch)的支持。这意味着一旦触发了监听事件,除非客户端显式取消监听,否则ZooKeeper将持续向客户端发送通知,而不仅仅触发一次。

因此,ZooKeeper的watch监听通知不是永久的,但在某些版本中支持永久监听。以上信息仅供参考,如需了解更多,建议咨询ZooKeeper官方工作人员或查阅相关书籍资料。