zookeeper znode

zookeeper数据模型的结构与unix文件系统类似,整体上可以看作是一棵树,每个节点称作一个znode

znode的数据模型:

zookeeper的Stat结构体:

[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
[zk: localhost:2181(CONNECTED) 2] create /wangteng v1.0
Created /wangteng
[zk: localhost:2181(CONNECTED) 3] ls /
[wangteng, zookeeper]
[zk: localhost:2181(CONNECTED) 4] get /wangteng
v1.0
[zk: localhost:2181(CONNECTED) 6] get -s /wangteng
v1.0
# 引起这个znode创建的zxid,创建节点的事物的zxid
# 每次修改zookeeper状态都会收到一个zxid形式的时间戳,也就是zookeeper事物id
# 如果zxid1 < zxid2,那么zxid1在zxid2之前发生
cZxid = 0x6  
ctime = Mon Sep 16 14:43:30 CST 2019 #被创建时间
mZxid = 0x6 #znode最后更新的zxid
mtime = Mon Sep 16 14:43:30 CST 2019 #znode最后更新的时间
pZxid = 0x6 #最后更新的子节点zxid
cversion = 0 #znode子节点变化号,znode子节点修改次数
dataVersion = 0 #znode数据变化号
aclVersion = 0 #znode访问控制列表的变化号
ephemeralOwner = 0x0  #如果是临时节点,这个是znode拥有者的session id,如果不是临时节点则是0
dataLength = 4  # znode数据长度 length("v1.0")
numChildren = 0  # znode子节点个数
[zk: localhost:2181(CONNECTED) 7] get -w /wangteng
v1.0

zookeeper内部维护了一套类似unix的树形结构:
由znode构成的集合,znode的集合又是一个树形结构,每一个znode又有很多属性进行描述
znode = path + nodeValue + Stat

znode中的存在类型:
持久/临时

  • PERSISTENT 持久化目录节点:客户端与zookeeper断开后,该节点依旧存在 create /myNode
  • PRESISTENT_SEQUENTIAL 持久化顺序编号目录节点:客户端与zookeeper断开连接后,该节点依旧存在,只是zookeeper给该节点名称进行顺序编号 create -s /myNode
  • EPHEMERAL 临时目录节点:客户端与zookeeper断开后,该节点被删除 create -e /myNode
  • EPHEMERAL 临时顺序编号目录节点:客户端与zookeeper断开连接后,该节点被删除,只是zookeeper给该节点名称进行顺序编号 create -s -e /myNode

你可能感兴趣的:(zookeeper)