学分高考 web前端

ZooKeeper的节点类型有哪些?

发布时间: 2022-05-17 23:33:03

ZooKeeper的节点类型有哪些?ZooKeeper是个分布式开放源码的分布式应用程序协调服务,是Hadoop和Hbase的重要组件。ZooKeeper服务端支持7种节点类型分别是:持久、持久顺序、临时、临时顺序、容器、持久 TTL、持久顺序 TTL。

ZooKeeper的节点类型

接下来具体介绍下ZooKeeper的节点类型:

1、持久、临时

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

2、持久顺序、临时顺序

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

3、容器

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

4、持久 TTL、持久顺序 TTL

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

ZooKeeper以Fast Paxos算法为基础,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos做了一些优化,通过选举产生一个领导者,只有leader才能提交proposer具体算法可见Fast Paxos。要想弄懂ZooKeeper首先得对Fast Paxos有所了解。

ZooKeeper目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集提供Java和C的接口。

温馨提示:
本文【ZooKeeper的节点类型有哪些?】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号