Zookeeper 数据模型

本文最后更新于:2024年3月18日 凌晨

Zookeeper 数据模型

  • 在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。
  • 整体结构类似于 linux 文件系统的模式以树形结构存储,其中根路径以 / 开头。

zookeeper 数据结构

zookkeeper 提供的名称空间非常类似于标准文件系统,key-value 的形式存储,名称 key 由斜线 / 分割的一系列路径元素,zookeeper 名称空间中的每个节点都是由一个路径标识。

Znode 的状态属性

  • 使用get命令可以获得znode的属性。
1
2
3
4
5
6
7
8
9
10
11
12
13
[zk: localhost:2181(CONNECTED) 2] get /dubbo
127.0.0.1
cZxid = 0x3
ctime = Wed Jul 29 13:17:32 CST 2020
mZxid = 0x3
mtime = Wed Jul 29 13:17:32 CST 2020
pZxid = 0x5
cversion = 1
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 9
numChildren = 1
  • 其中第一行显示的127.0.01是该节点的 value 值。
名称 描述
cZxid 创建节点时的事务ID
ctime 创建节点时的时间
mZxid 最后修改节点时的事务ID
mtime 最后修改节点时的时间
pZxid 表示该节点的子节点列表最后一次修改的事务ID,添加子节点或删除子节点就会影响子节点列表,但是修改子节点的数据内容则不影响该ID**(注意,只有子节点列表变更了才会变更pzxid,子节点内容变更不会影响pzxid)**
cversion 子节点版本号,子节点每次修改版本号加1
dataversion 数据版本号,数据每次修改该版本号加1
aclversion 权限版本号,权限每次修改该版本号加1
ephemeralOwner 创建该临时节点的会话的sessionID(如果该节点是持久节点,那么这个属性值为0)
dataLength 该节点的数据长度
numChildren 该节点拥有子节点的数量(只统计直接子节点的数量)

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!