Zookeeper-节点

定义

       Zookeeper的视图结构和标准的Unix文件系统类似,其中每个节点称为数据节点或Znode,每个znode可以存储数据,还可以挂载子节点,因此可以称之为“树”。

特性

1、在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据

2、通过客户端可对znode进行增删改查的操作,还可以注册watcher监控znode的变化。

节点类型

1、持久节点(PERSISTENT)

客户端与服务端端口连接后,该节点依然存在,除非快照文件被删除。

下图中,创建了持久化节点water。

2、持久化顺序节点(PERSISTENT_SEQUENTIAL)

客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号。

在下图中,创建了water的持久顺序节点,Zookeeper自动给节点添加了序列号,最后节点为water0000000006。

同时我们看属性ephemeralOwner是空值,表明该节点为持久化节点。

3、临时节点(EPHEMERAL)

客户端与zookeeper断开连接后,该节点被删除。

在下图中,在持久化节点water下创建临时节点aaa。我们发现ephemeralOwner属性不为空值,表明该节点为临时节点。

4、临时顺序节点(EPHEMERAL_SEQUENTIAL)

客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。

下图中,创建临时节点bbb,系统自动带上了学列号。

注意:临时下不能再创建子节点

在下图中,我们尝试在临时节点/water/aaa下创建节点ccc,系统提示不允许在临时节点下创建节点。

节点属性

序号

属性

数据结构

描述

1

czxid

long

节点被创建的Zxid

2

mzxid

long

节点被修改的Zxid

3

pzxid

long

子节点最有一次被修改时的事务ID

4

ctime

long

节点被创建的时间

5

mtime

long

节点最后一次被修改的时间

6

versoin

long

节点被修改的版本号,

7

cversion

long

节点的所拥有子节点被修改的版本号

8

aversion

long

节点的ACL被修改的版本号

9

emphemeralOwner

long

如果此节点为临时节点,那么它的值为这个节点拥有者的会话ID;否则,它的值为0

10

dataLength

int

节点数据域的长度

11

numChildren

int

节点拥有的子节点个数

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章