我们使用Zookeeper来协调集群服务器之间的任务执行。我们的一位客户的网络非常不稳定,我们的服务器不断断开连接并重新连接到Zookeeper。
问题在于,在断开连接后,我们的服务器将丢失发生的事件,即使再次重新连接到Zookeeper也不会处理这些事件。
到目前为止,我的建议是:
答案 0 :(得分:1)
我认为使用时间戳记不是一个好主意。相反,您可以使用Curator的内置方法:
使用哪一个无关紧要,它们都支持监听ChildAdded
和DataChanged
事件,它们将完全满足您的需求。在断开连接后重新连接时,Curator将在内部评估新添加的子代并比较现有子代的数据以确定更改。对你没有压力。您只需要使用提供的监听器即可。
就准确性而言,TreeCache不保证100%的准确性。因此,最好重新设计使用PathChildrenCache的方法。