知识卡片

Watch通知边界

普通读书笔记卡 · 1772.c

内容

ZooKeeper 的 Watch 机制适合把元数据变化通知给客户端,但它不是可靠消息队列的完整替代。客户端收到通知后应重新读取状态,因为通知只提示“变了”,不承诺携带全部变化历史。

参考来源

- 位置:《大数据日知录:架构与算法》第5章《分布式协调系统》"5.2 ZooKeeper"操作原语一节(源文件:_epub-src/OEBPS/text00010.html) - 结论依据:原文明确"getData、exists和getChildren可以设置观察标识,如果观察标识watch设置为真,则当节点内容发生变化时,ZooKeeper会主动通知客户端进程,但是并不会将变化内容数据本身推送过来,客户端接收到通知后,可以重新读取节点内容来获取最新的信息",说明Watch只是变更提示而非数据推送。 - 原始内容:其中3个接口:getData、exists和getChildren可以设置观察标识,如果观察标识watch设置为真,则当节点内容发生变化时,ZooKeeper会主动通知客户端进程,但是并不会将变化内容数据本身推送过来,客户端接收到通知后,可以重新读取节点内容来获取最新的信息。