Zookeeper的数据模型和节点类型


Zookeeper的数据模型

Zookeeper的数据模型迥异于redis的key-value模型,它使用的是文件系统所常见的层次模型
Zookeeper的层次模型称作:Data Tree,Data Tree 的每个节点称作Znode。不同于文件系统:

  • 每个Znode都能保存数据;
  • 每个Znode都能保存1M的数据;
  • 每个Znode都可以通过其路径唯一标识;
  • 每个Znode都有一个版本(version),版本从0开始计数;

Zookeeper使用层次模型的原因

  • 1、文件系统的树形结构便于表达数据之间的层次关系;
  • 2、文件系统的树形结构便于为不同的应用分配独立的命名空间;

Zookeeper的节点类型

持久节点(PERSISTENT)

持久节点(PERSISTENT)在创建之后即使出现Zookeeper集群宕机或者client宕机也不会丢失。
创建指令:create /xxx
在这里插入图片描述

临时节点(EPHEMERAL)

临时节点(EPHEMERAL)在client宕机或者client在指定timeout时间内没有给ZooKeeper集群发送消息就会丢失。
创建指令:create -e /xxx
在这里插入图片描述

持久顺序节点(PERSISTENT_SEQUENTIAL)

持久顺序节点(PERSISTENT_SEQUENTIAL)除了具备持久节点的特点之外,它的名字也具有顺序性。
创建指令:create -s /xxx
在这里插入图片描述

临时顺序节点(EPHEMERAL_SEQUENTIAL)

临时顺序节点(EPHEMERAL_SEQUENTIAL)除了具备临时节点的特点之外,它的名字也具有顺序性。
创建指令:create -e -s /xxx
在这里插入图片描述

容器节点(CONTAINER)

容器节点是zk3.5.3版本新增的节点类型。当容器节点中没有任何子节点,那么改容器节点会被zk定期删除。它和持久节点的区别是:在zk服务启动后,会有一个单独的线程去扫描所有的容器节点,当发现容器节点的子节点数量为0时,会自动删除改节点。
创建指令:create -c /xxx
在这里插入图片描述

TTL节点

TTL节点是带过期时间的节点,默认禁用。如果需要启用,需要在zoo.cfg中添加extendedTypesEnabled=true开启。注意:ttl不能用于临时节点。
创建指令:create -t /xxx
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘丶沐逸尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值