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

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

相关推荐
本尊是喵44 分钟前
AutoDL--FileZilla--VS Code远程连接
运维·服务器
凯云-金山HIL1 小时前
打破仿真孤岛:基于凯云SimuRTS的分布式联合仿真系统架构深度解析
自动化测试·分布式·系统架构·etest·半实物仿真
网络小白不怕黑1 小时前
11.虚拟机模拟路由器实验
linux·运维·服务器·网络
Mapleay1 小时前
Linux 内核编程基础
linux·运维·服务器
小则又沐风a1 小时前
深入理解文件系统(二)
java·服务器·前端
天蓝的想2 小时前
Kueue 如何管理 DRA 模式下的 GPU 配额
运维·服务器
恒53910 小时前
Linux文件系统I
linux·运维·服务器
阿成学长_Cain11 小时前
Linux ipcs 命令超全详解:查看共享内存 / 消息队列 / 信号量,IPC 运维必备
linux·运维·服务器·网络·数据库
Database_Cool_11 小时前
HTAP数据库详解_阿里云PolarDB-X一体化行列存实现实时分析
分布式·阿里云·云计算
青瓦梦滋11 小时前
协议定制/序列化-反序列化(Linux视角)
linux·服务器·网络·c++