Apache zookeeper 重新连接到Zookeeper后,如何识别添加和修改的孩子?

Apache zookeeper 重新连接到Zookeeper后,如何识别添加和修改的孩子?,apache-zookeeper,apache-curator,Apache Zookeeper,Apache Curator,我们使用Zookeeper来协调集群服务器之间的任务执行。我们的一个客户的网络非常不稳定,我们的服务器不断断开连接并重新连接到Zookeeper 问题是,在断开连接时,我们的服务器将错过发生的事件,即使重新连接到Zookeeper,也不会处理这些事件 使用Zookeeper和Apache Curator是否有推荐的\标准方法来处理此类情况 如何在Zookeeper中识别当前纪元时间 到目前为止,我的建议是: 我们记录了上次和动物园管理员联系的时间。就在我们断开连接之前 再次重新连接时,我们询

我们使用Zookeeper来协调集群服务器之间的任务执行。我们的一个客户的网络非常不稳定,我们的服务器不断断开连接并重新连接到Zookeeper

问题是,在断开连接时,我们的服务器将错过发生的事件,即使重新连接到Zookeeper,也不会处理这些事件

  • 使用Zookeeper和Apache Curator是否有推荐的\标准方法来处理此类情况
  • 如何在Zookeeper中识别当前纪元时间
到目前为止,我的建议是:

  • 我们记录了上次和动物园管理员联系的时间。就在我们断开连接之前
  • 再次重新连接时,我们询问侦听器为受监视路径的所有子节点向哪个激发子节点添加了事件
  • 在处理这些添加的子事件时,我们只处理上次连接到Zookeeper后创建或修改的路径的事件

  • 我认为使用时间戳不是一个好主意。相反,您可以使用馆长的内置:

    • 如果你想看整棵树
    • 如果只想查看子目录
    无论您使用哪一个,都支持收听
    ChildAdded
    DataChanged
    事件,这两个事件将完全满足您的需要。断开连接后重新连接时,策展人将在内部评估新添加的子项,并比较现有子项的数据以确定更改。对你没有压力。您只需要使用提供的侦听器

    就精度而言,TreeCache不能保证100%的精度。所以,如果您可以重新设计您的方法来使用PathChildrenCache,那就更好了