摘要:ZK客户端操作
一、ZK节点类型
持久节点:(客户端、服务器断开连接之后,节点不自动删除)
临时节点:(客户端、服务器断开连接之后,自动删除)
- 持久节点
- 持久顺序节点:持久节点基础上,节点名后加数字后缀顺序号(由父节点维护,单调递增)
- 临时节点
- 临时顺序节点:临时节点基础上,节点名后加数字后缀顺序号(由父节点维护,单调递增)
在分布式系统中,顺序号可以用于所有事件全局排序,如此客户可以通过顺序号推断事件的顺序
二、ZK客户端操作
ls -s <path>
例如:ls -s /
1、cZxid:创建节点的事务id,每次修改ZK服务器状态就会对应一个事务ID
2、ctime:创建当前节点时候的毫秒数(从1970年算起)
3、mZxid:当前节点最后被修改时对应的事务ID
4、mtime:当前节点最后被修改的毫秒数(1970年算起)
5、pZxid:当前Znode下的子节点最后一次修改对应的事务ID
6、cversion:Znode子节点变化号,子节点修改次数
7、dataversion:Znode数据变化号
8、aclVersion:Znode访问控制列表修改次数
9、ephemeralOwner:如果Znode是临时节点,那么这个是该临时节点拥有者对应的session id,如果不是临时节点,那么为0
10、dataLength:Znode数据长度
11、numChild:子节点数量
创建节点:不能多级创建
节点名称必须以 " / "开头,,临时节点不能有子节点
不带顺序号的持久节点:create <path> "data"
create /user "czm"
create /user/local "本地用户"
持久顺序节点:create -s <path> "data"
create -s /user/tool "工具相关数据"
临时节点:create -e <path> "data"
create -e /test1
临时顺序节点:create -e <path> "data"
create -e -s /test1
获取节点数据
get <path> [param]
get /user
修改节点数据
set <path> "data"
set /user "newValue"
删除节点
delete <path>
deleteAll <path>
delete /car #该节点下没有子节点,才可以使用delete删除
deleteall /user #该节点下有子节点,所以要删除这个节点,需要使用deleteall
查看节点状态
stat <path>
stat /user
Zk客户端所有命令
addauth scheme auth
close
config [-c] [-w] [-s]
connect host:port
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
delete [-v version] path
deleteall path
delquota [-n|-b] path
get [-s] [-w] path
getAcl [-s] path
history
listquota path
ls [-s] [-w] [-R] path
ls2 path [watch]
printwatches on|off
quit
reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
redo cmdno
removewatches path [-c|-d|-a] [-l]
rmr path
set [-s] [-v version] path data
setAcl [-s] [-v version] [-R] path acl
setquota -n|-b val path
stat [-w] path
sync path
总结
客户端基本操作命令:增
、删
、改
、查
节点类型:持久节点
、持久顺序节点
、临时节点
、临时顺序节点