Apache zookeeper 在客户端断开连接一段时间后,是否有方法删除临时节点?

Apache zookeeper 在客户端断开连接一段时间后,是否有方法删除临时节点?,apache-zookeeper,apache-curator,Apache Zookeeper,Apache Curator,我们的群集节点对删除一些临时节点采取行动,但我们的客户出现网络问题,导致删除一些客户机的临时节点,尽管这些客户机仍在运行 我同意网络问题应该得到解决,但目前看来我们无法做到这一点 那么,有没有办法将Zookeeper配置为仅当断开连接的客户端保持断开连接的时间X时,才删除断开连接的客户端的临时节点 我们使用Apache Curator作为Zookeeper客户端。 我们的Zookeeper版本是3.4.6。您可以使用Zookeeper的会话超时配置来实现所需的行为。Zookeeper服务器在会话

我们的群集节点对删除一些临时节点采取行动,但我们的客户出现网络问题,导致删除一些客户机的临时节点,尽管这些客户机仍在运行

我同意网络问题应该得到解决,但目前看来我们无法做到这一点

那么,有没有办法将Zookeeper配置为仅当断开连接的客户端保持断开连接的时间X时,才删除断开连接的客户端的临时节点

我们使用Apache Curator作为Zookeeper客户端。
我们的Zookeeper版本是3.4.6。

您可以使用Zookeeper的会话超时配置来实现所需的行为。Zookeeper服务器在会话超时期间未从客户端接收到任何心跳信号后,将删除会话的临时节点。

您可以使用Zookeeper的会话超时配置来实现所需的行为。Zookeeper服务器在会话超时期间未从客户端接收到任何心跳信号后,将删除会话的临时节点。

我具有默认值(2000ms tickTime,iniLimit=10和syncLimit=5),一旦客户端断开连接,临时节点将消失。客户端在大约1秒后再次连接ZooKeeper服务器在zoo.cfg中公开minSessionTimeout和maxSessionTimeout配置(以毫秒为单位)。在会话建立期间,客户端和服务器之间协商超时。此超时的默认最小值为2*tickTime,最大值为20*tickTime。因此,使用所有默认服务器设置,您可以在4到40秒之间的任何位置获得会话超时。根据您使用的客户端库,客户端可以指定它想要的会话超时(毫秒)。例如,如果协商超时为20秒,则在客户端与服务器断开连接20秒后,您的临时节点将被删除。因此,您希望问题中的X为协商会话超时。我们增加了tickTime,这解决了问题。我想你的解决方案也应该有效。我有默认值(2000ms tickTime,iniLimit=10和syncLimit=5),一旦客户端断开连接,临时节点就消失了。客户端在大约1秒后再次连接ZooKeeper服务器在zoo.cfg中公开minSessionTimeout和maxSessionTimeout配置(以毫秒为单位)。在会话建立期间,客户端和服务器之间协商超时。此超时的默认最小值为2*tickTime,最大值为20*tickTime。因此,使用所有默认服务器设置,您可以在4到40秒之间的任何位置获得会话超时。根据您使用的客户端库,客户端可以指定它想要的会话超时(毫秒)。例如,如果协商超时为20秒,则在客户端与服务器断开连接20秒后,您的临时节点将被删除。因此,您希望问题中的X为协商会话超时。我们增加了tickTime,这解决了问题。我想你的解决办法也应该奏效。