Zookeeper短暂节点是否写入磁盘?
我知道在Zookeeper执行写入客户端之前,正常的Zookeeper节点会写入磁盘。
但是,临时节点仅在客户端会话期间持续,因此如果zookeeper节点全部崩溃,则根据定义,客户端会话将被破坏。因此不需要写入磁盘,因为在集合重新启动时不会重新创建临时节点。因此从理论上讲,短暂的节点似乎只需要存储在内存中。
这是如何实现的?
答案 0 :(得分:1)
我自己遇到了这个问题,并注意到它已经在Zookeeper mailing list上得到了解答,我在这里发布给任何发现此问题的人。
简而言之,是的,短暂的节点确实被写入磁盘。因此,即使整个Zookeeper集合已关闭,客户端会话也可以保持不变。引用Patrick Hunt's answer from the mailing list(强调我的):
短暂的znodes在某种意义上被视为持久的znodes 法定人数的节点需要同意任何变更。因此编写了znode 到事务日志。
客户端会话在客户端关闭时结束 明确会话或ZK仲裁负责人决定会话 已过期(基于协商会话超时)。只有一个 领导者是活跃的会话可以过期(或关闭该会议)。 :当 你关闭了一个整体来保持会话。如果你是,为了 例如,关闭整数一小时,然后重启会话 仍然会很活跃。当新领导人出现时,时钟将“重置” 当选。如果客户端会话仍处于活动状态,则会话将继续, 任何短暂的znodes仍然存在。