ZooKeeper 的 Watcher 怎样工作?
查看完整题解
参考回答
直接回答
Watcher 是节点变化的回调。普通 Watch 在 exists、getData 或 getChildren 读取时一起登记,匹配变化发生后触发一次。
讲清原理
通知告诉你发生了哪类变化和相关路径。应用需要再读节点来拿当前值,也可以读数据时顺手把监听重新挂上。ZooKeeper 3.6 起还支持单独登记持久和持久递归 Watch。
例子与易错点
配置从 A 连续改成 B、C,应用可能直接读到 C。逐次变更都要保留时,应使用能存历史并从进度续读的日志机制。
延伸阅读 ZooKeeper 的通知机制会传送什么? · 一次 ZooKeeper 监听从注册到回调经历什么? · ZooKeeper 的 Watch 一直有效吗?
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。