ZooKeeper数据模型/znode节点深入

1、Znode的数据模型
1.1 Znode是什么?

Znode维护了一个stat结构,这个stat包含数据变化的版本号、访问控制列表变化、还有时间戳。版本号和时间戳一起,可让Zookeeper验证缓存和协调更新。每次znode的数据发生了变化,版本号就增加。
1.2 ZooKeeper的Stat结构体

java 复制代码
czxid- 引起这个znode创建的zxid,创建节点的事务的zxid(ZooKeeper Transaction Id)
每次修改ZooKeeper状态都会收到一个zxid形式的时间戳,也就是ZooKeeper事务ID。
事务ID是ZooKeeper中所有修改总的次序。每个修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生。
ctime - znode被创建的毫秒数(从1970年开始)
mzxid - znode最后更新的zxid
mtime - znode最后修改的毫秒数(从1970年开始)
pZxid-znode最后更新的子节点zxid
cversion - znode子节点变化号,znode子节点修改次数
dataversion - znode数据变化号
aclVersion - znode访问控制列表的变化号
ephemeralOwner- 如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0x0。
dataLength- znode的数据长度
numChildren - znode子节点数量

例:

(1)创建新的子节点,并添加数据。

(2)获取新创建的子节点。

(3)修改创建的子节点内容。

(4)获取修改后的子节点内容。

使用help 查看有哪些命令

java 复制代码
案例所对应的命令
(1)create /test javademo1
(2)get /test
(3)set /test javademo2
(4)get /test

2、Znode中的存在类型

2.1 PERSISTENT-持久化目录节点

客户端与zookeeper断开连接后,该节点依旧存在

java 复制代码
# create  /demo01 java01

2.2 PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点

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

java 复制代码
# create -s /demo011 java011

2.3 EPHEMERAL-临时目录节点

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

java 复制代码
# create -e /demo2 java2

2.4 EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点

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

java 复制代码
# create -s -e /demo03 /java03

默认情况下是持久化节点!

相关推荐
1892280486122 分钟前
NW710NW713美光固态闪存NW719NW720
大数据·服务器·网络·人工智能·科技
会会会一飞冲天的小慧猪~ ~ ~26 分钟前
网络综合实验
服务器·网络·lvs
喧星Aries26 分钟前
进程调度的时机,切换与过程方式(操作系统OS)
java·服务器·前端·操作系统·进程调度
咖丨喱2 小时前
【Action帧简要分析】
服务器·数据库·asp.net
三体世界2 小时前
TCP传输控制层协议深入理解
linux·服务器·开发语言·网络·c++·网络协议·tcp/ip
LuDvei2 小时前
CH9121T电路及配置详解
服务器·嵌入式硬件·物联网·网络协议·tcp/ip·网络安全·信号处理
zkmall2 小时前
企业电商平台搭建:ZKmall开源商城服务器部署与容灾方案
运维·服务器·开源
泷羽Sec-静安2 小时前
OSCP官方靶场-Solstice WP
服务器·网络·数据库
华不完2 小时前
下一代防火墙混合模式部署
运维·服务器·网络