Zookeeper的数据模型和节点类型

数据模型:

         树形结构

zk维护的数据主要有:客户端的会话( session )状态及数据节点( dataNode )信息。

zk在内存中构造了个 DataTree 的数据结构,维护着path到dataNode的映射以及dataNode间的树状层级关系。为了提⾼读取性能,集群中每个服务节点都是将数据全量存储在内存中。所以, zk最适于读多写少且轻量级数据 的应⽤场景。

数据仅存储在内存是很不安全的,zk采⽤事务⽇志⽂件及快照⽂件的⽅案来落盘数据,保障数据在不丢失的情况下能快速恢复。

树中的每个节点被称为— Znode

Znode 兼具 ⽂件 ⽬录 两种特点。可以做路径标识,也可以存储数据,并可以具有⼦ Znode。具有增、 删、改、查等操作。

Znode 具有原⼦性操作,读操作将获取与节点相关的所有数据,写操作也将 替换掉节点的所有数据。另外,每⼀个节点都拥有⾃⼰的 ACL(访问控制列 表),这个列表规定了⽤户的权限,即限定了特定⽤户对⽬标节点可以执⾏的操作


Znode 存储数据⼤⼩有限制。每个 Znode 的数据⼤⼩⾄多 1M,常规使⽤中应该远⼩于此值。


Znode 通过路径引⽤,如同 Unix 中的⽂件路径。路径必须是绝对的,因此他们必须由斜杠字符来开头。除此以外,他们必须是唯⼀的,也就是说每⼀个路径只有⼀个表示,因此这些路径不能改变。在ZooKeeper 中,路径由 Unicode 字符串组成,并且有⼀些限制。字符串"/zookeeper"⽤以保存管理信息,⽐如关键配额信息。


持久节点:⼀旦创建、该数据节点会⼀直存储在zk服务器上、即使创建该节点的客户端与服务端的会话关闭了、该节点也不会被删除


临时节点:当创建该节点的客户端会话因超时或发⽣异常⽽关闭时、该节点也相应的在zk上被删除 


有序节点:不是⼀种单独种类的节点、⽽是在持久节点和临时节点的基础上、增加了⼀个节点有序的性质 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

图图是个好孩纸~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值