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

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

相关推荐
Maple_land35 分钟前
内建命令揭秘与环境变量全景:Linux变量体系的完整闭环
linux·运维·服务器·c++·centos
D11_1 小时前
阿里云服务器百度站长平台验证完整指南:SSH文件验证详解
服务器·百度·阿里云
沐浴露z1 小时前
一篇文章详解Kafka Broker
java·分布式·kafka
EndingCoder1 小时前
Node.js 数据查询优化技巧
服务器·javascript·数据库·node.js·数据查询优化
RedCong2 小时前
gitops无法连接到Openshift集群
运维·服务器·openshift
天***88962 小时前
怎么卸载或禁用 WPS office的wps看图软件?怎么关闭wps看图软件。或者怎么彻底删除wps?
运维·服务器·wps
pythonpioneer2 小时前
Ray Tune 强大的分布式超参数调优框架
分布式·其他
笨蛋少年派3 小时前
Hadoop High Availability 简介
大数据·hadoop·分布式
啊吧怪不啊吧3 小时前
SQL之表的增删
服务器·数据库·sql·1024程序员节
zhaotiannuo_19984 小时前
【Linux kali 更换yum源】
linux·运维·服务器