我在curatorframeworkfactory.newclient方法的帮助下创建了一个emperal节点,该方法采用,znodes addresses,sessionTimeoutims,connectionTimeoutims,retry)。我通过了51000的sessiontimeoutims和151000的connectiontimeoutims。这个方法可以在我的zookeeper中创建临时节点,但是这个临时节点直到应用程序运行时才被删除。
为什么sessiontimeout是5秒。
2条答案
按热度按时间mwkjh3gx1#
最可能的原因是zookeeper的心跳设置(也称为ticktime)较高,并且最小会话超时不能低于2*ticktime。
7gcisfzg2#
要进行调试,请在创建临时节点时从zkcli检查临时所有者。该值是会话id。
当拥有节点的客户端在zookeeper日志中时,您应该得到以下行:
信息[processthread](sid:0 cport:2182)::preprequestprocessor@486]-已处理sessionid的会话终止:0x161988b731d000c
在本例中,短命鸟是0x161988b731d000c。如果你不明白,你会有一些错误。在我的例子中,它是eof异常,这是因为客户端库和服务器不匹配。