动物园管理员的手表是一次触发;如果我得到一个手表事件,并希望得到未来变化的通知,我必须设置另一个手表。
有一些缺点:
1)这使我的代码变得复杂。
2)在获取事件和发送新的请求以获取手表之间存在延迟,可能会遗漏一些更改!
为什么动物园管理员只生产手表一次触发器?
发布于 2017-06-15 06:40:56
你可以看到动物园管理员-153 https://issues.apache.org/jira/browse/ZOOKEEPER-153
在现实中,这种永久手表不会提供任何额外的好处超过一次手表。具体来说,监视事件中不包含任何数据,因此客户端仍然需要执行查询操作才能获得与更改相对应的数据;即使这样,znode也可以在事件接收后和客户端发送查询操作之前再次更改。甚至可以使用一次监视和检查znode的stat结构中的mzxid来找到对znode的更改数。客户端仍然会错过当客户端切换ZooKeeper服务器时发生的事件。
https://stackoverflow.com/questions/44430531
复制相似问题