加入收藏 | 设为首页 | 会员中心 | 我要投稿 漯河站长网 (https://www.0395zz.cn/)- 云服务器、混合云存储、网络、内容创作、云渲染!
当前位置: 首页 > 大数据 > 正文

ZooKeeper 有几种节点类型?带你了解

发布时间:2021-06-02 21:57:42 所属栏目:大数据 来源:互联网
导读:一、关于 ZK 的节点类型 大家如果刷过 ZK 相关面试题的话,就一定会刷到过 ZK 有几种节点类型?,大家通常背书的答案的话是:4 种!但其实 ZK (3.6.2)服务端支持 7 种节点类型,分别是: 持久 持久顺序 临时 临时顺序 容器 持久 TTL 持久顺序 TTL 这 7 种类型

一、关于 ZK 的节点类型

大家如果刷过 ZK 相关面试题的话,就一定会刷到过 “ZK 有几种节点类型?”,大家通常背书的答案的话是:4 种!但其实 ZK (3.6.2)服务端支持 7 种节点类型,分别是:

  • 持久
  • 持久顺序
  • 临时
  • 临时顺序
  • 容器
  • 持久 TTL
  • 持久顺序 TTL

这 7 种类型之前的文章中也有提到过,但是并没有展开讲。这次更新的单篇想要把这 7 种类型的节点,认认真真的讲一遍!Let's GO

二、简单介绍

2.1 持久、临时

持久不用我多说,是用的最多的一种类型,也是默认的节点类型,临时节点相较于持久节点来说,就是它会随着客户端会话结束而被删除,通常可以用在一些特定的场景,例如分布式锁释放,健康检查等。

2.2 持久顺序、临时顺序

这两种我放在一起介绍,因为他们相对于上面两种的特性就是 ZK 会自动在这两种节点之后增加一个数字的后缀,而路径 + 数字后缀是能保证唯一的,这数字后缀的应用场景可以实现诸如分布式队列,分布式公平锁等。

2.3 容器

容器节点是 3.5 以后新增的节点类型,只要在调用 create 方法时,指定 CreateMode 为 CONTAINER 即可创建容器的节点类型,容器节点的表现形式和持久节点是一样的,但是区别是 ZK 服务端启动后,会有一个单独的线程去扫描,所有的容器节点,当发现容器节点的子节点数量为 0 时,会自动删除该节点,除此之外和持久节点没有区别,官方注释给出的使用场景是 Container nodes are special purpose nodes useful for recipes such as leader, lock, etc. 说可以用在 leader 或者锁的场景中。

2.4 持久 TTL、持久顺序 TTL

关于持久和顺序这两个关键字,不用我再解释了,这两种类型的节点重点是后面的 TTL,TTL 是 time to live 的缩写,指带有存活时间,简单来说就是当该节点下面没有子节点的话,超过了 TTL 指定时间后就会被自动删除,特性跟上面的容器节点很像,只是容器节点没有超时时间而已,但是 TTL 启用是需要额外的配置(这个之前也有提过)配置是 zookeeper.extendedTypesEnabled 需要配置成 true,否则的话创建 TTL 时会收到 Unimplemented 的报错

(编辑:漯河站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读