文章目录
- Create - 创建Zookeeper节点
- ls / get - 读取节点信息
- set - 更新节点信息
- delete - 删除节点信息
使用如下命令链接zk客户端
./zkCli.sh -server ip:port
Create - 创建Zookeeper节点
语法如下:
create [-s] [-e] path data acl
-s:代表SEQUENTIAL,即顺序节点特性
-e:代表EPHEMERAL,即临时节点特性,不加-s -e默认创建永久节点
path:为节点路径,如/zkParentNode,/zkParentNode/subNode
acl:用于zk权限控制,一般用不到
测试永久节点创建
create /persistentNode 1
测试顺序节点创建
create -s /senquentialNode 1
测试临时节点创建
create -e /ephemeralNode 1
查看节点数据,节点数据如下
断开连接(quit)后,重新连接客户端,看临时节点是否存在
可以看到,临时节点ephemeralNode已经没了(连接断开后自动删除)
ls / get - 读取节点信息
列出指定节点路径下子节点信息
ls path [watch]
path-节点路径
watch-为该节点添加一个监听器,监听器只会触发一次,如果在该path下创建子节点,会产生NodeChildrenChanged事件,如果在path下删除子节点,会产生NodeChildrenChanged事件,删除该path所在节点,会产生NodeDeleted事件
如上图例子中 ls / 列出了 /目录下所有节点信息,其中zookeeper节点为默认节点信息
测试watch机制
先执行如下命令,给persistentNode下添加个名为myWatcher的监听器
ls /persistentNode myWatcher
读取指定节点数据信息和属性信息
get path [watch]
箭头处内容为数据内容
属性字段如下:
属性名 说明
cZxid 节点创建时事务id
cTime 节点创建时间
mZxid 节点最后一次更新时事务id
mTime 节点最后一次更新时间
pZxid 节点子节点列表变化的事务id(子节点列表变化,不是子节点内容变化)
cVersion 子节点版本号
dataVersion 数据节点内容版本号,更新后+1
aclVersion ACL版本号
ephemeralOwner 若为临时节点,则为创建节点的会话sessionId,若为永久节点则为0
dataLength 节点数据长度
numChildren 子节点数量
set - 更新节点信息
set path data [version]
version:标识更新是基于节点哪个dataVersion进行更新
本地对持久节点进行更新测试,结果如下
set /persistentNode 2
可以看到mZxid变大了,mTime变成当前时间,同时dataVersion从0变成1
delete - 删除节点信息
删除指定路径节点(节点下必须没有子节点)
delete path [version]
创建一个节点delete,并在delete下新建delete1节点信息
尝试删除delete节点,提示node not empty
先删除子节点,此时delete父节点下午子节点,再删除父节点,删除成功
————————————————
版权声明:本文为CSDN博主「hosaos」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hosaos/java/article/details/88016397