Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

ZooKeeper 的通知机制会传送什么?

查看完整题解

参考回答

直接回答

节点通知给出路径和事件类型,例如节点创建、删除、数据改变和子节点列表改变。连接状态也会单独通知。更新后要用的数据需要重新读取。

讲清原理

exists 可以关注还不存在的路径,getData 关注节点数据,getChildren 关注直接子项列表。事件与相应注册方法有关。Disconnected 或 Expired 属于连接或会话事件。

一次性 Watch 触发后,读状态并重新登记
一次性 Watch 触发后,读状态并重新登记

例子与易错点

修改 /services/a 的数据,父目录 /services 的直接子项列表没有变化。只监听父目录的子项列表,无法靠这次数据修改更新 a 的内容。

延伸阅读 ZooKeeper 的 Watcher 怎样工作? · ZooKeeper 的 Watch 一直有效吗? · 使用 ZooKeeper Watch 有哪些容易踩的坑?

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。