znode类型我们常见的有四种,分别是:

1、PERSISTENT:永久节点,从一开始被创建永久存在直到被主动删除,不会因为client的session断开而被删除。

2、PERSISTENT_SEQUENTIAL:永久有序节点,跟PERSISTENT一样,唯一的区别是节点名会被追加一个单调递增的十进制序号。

3、EPHEMERAL:临时节点,被client创建,client断开连接,节点就被删除。

4、EPHEMERAL_SEQUENTIAL:临时有序节点,被client创建,client断开连接,节点就被删除,节点名会被追加一个单调递增的十进制序号。

除了上面常见的四种类型,在zk的3.5.5及以上版本,有添加了三种类型:

这三种类型分别是:

5、CONTAINER:容器类型,主要用于zk的leader选举和分布式锁等使用场景,其特点是,当容器节点的最后一个子节点被删除,则该节点会变成候选删除节点,在将来的某个时刻被zk服务删除(至于什么时候删除,还没研究)。

6、PERSISTENT_WITH_TTL:带过期时间的永久节点,特性跟PERSISTENT类似,区别是,一旦在过期时间内节点没有任何修改,并且没有任何子节点,则该节点会被删除。TTL时间单位为毫秒。

在Zookeeper.java create方法注释中有说明TTL的单位。

其中过期时间最长不超过大概34年。

7、PERSISTENT_SEQUENTIAL_WITH_TTL:带有过期时间的永久有序节点。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐