zookeeper watch机制的理解
文件大小: 67k
源码售价: 10 个金币 积分规则     积分充值
资源说明:ZooKeeper Watch机制的理解 在 ZooKeeper 中,Watch 机制是一种异步非阻塞的主动通知模式,用于实现分布式进程之间的实时高效的状态共享。Watch 机制是 ZooKeeper 的核心机制之一,它使得分布式进程之间的“共享状态通信”更加实时高效。 Watch 机制的核心概念是:Watch 是一次性触发器,会在被设置 Watch 的数据发生变化的时候,发送给设置 Watch 的客户端。Watch 的定义中有三个关键点:一次性触发器、发送给客户端、异步发送。 Watch 的工作机制是:客户端在读取 ZooKeeper 中的数据时,可以设置 Watch,以便在数据发生变化时,收到通知。在 ZooKeeper 中,每个客户端都可以设置多个 Watch,每个 Watch 都是独立的。 Watch 的分类有两种:Data Watch 和 Child Watch。Data Watch 是指设置在节点上的 Watch,当节点的数据发生变化时,会触发 Watch。Child Watch 是指设置在节点上的 Watch,当节点的子节点发生变化时,会触发 Watch。 Watch 的生命周期是:客户端设置 Watch -> 数据发生变化 -> ZooKeeper 服务器发送 Watch 事件 -> 客户端收到 Watch 事件。 Watch 的实现机制是:ZooKeeper 服务器维护一个 Watch 列表,客户端连接到 ZooKeeper 服务器时,Watch 会被注册到服务器上。当客户端断开连接时,Watch 会被删除。如果客户端重新连接,Watch 会被重新注册。 ZooKeeper 对 Watch 提供了以下保障: * Watch 与其他事件、其他 Watch 以及异步回复都是有序的。 * 客户端库保证所有事件都会按顺序分发。 * 客户端会保障它在看到相应的 znode 的新数据之前接收到 Watch 事件。 * 从 ZooKeeper 接收到的 Watch 事件顺序一定和 ZooKeeper 服务所看到的事件顺序是一致的。 需要注意的是:Watch 是一次性触发器,如果你得到一个 Watch 事件,这并不意味着你会再次收到同样的 Watch 事件。 ZooKeeper 不保证 Watch 事件的可靠性,因为网络时延和其他因素可能会导致不同的客户端看到 Watch 和更新返回值的时间不同。 Watch 机制是 ZooKeeper 的核心机制之一,它使得分布式进程之间的“共享状态通信”更加实时高效。 ZooKeeper 对 Watch 提供了保障,客户端可以依靠 Watch 机制来实现实时的数据同步。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。