我使用 Zookeeper 作为集群的组通信框架。在我的集群中,每当节点崩溃时,我都想要一个相同的事件。这个怎么做 ? 早些时候,我使用 JGroup 作为组通信框架,其中集群内的每个节点都使用连接到同一 channel ,每当特定节点崩溃时,Jgroup 都会生成一个事件。
最佳答案
您可以让每个节点创建一个 ephemeral Zookeeper 中的 znode。当节点崩溃时,临时 znode 将消失。
现在要收到新节点加入和离开的通知,让所有临时 znode 成为同一父 znode 的子节点,并注册 watch在父 znode 的子节点上。当添加和删除子 znode 时,此监视将触发,让您可以查看节点何时加入或离开集群。
请记住每次触发时都重新注册您的 watch ,并注意如果节点加入和离开的速度非常快,您可能会错过该事件。
关于apache-zookeeper - Zookeeper - 如何获取集群中的节点崩溃事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153640/