ZooKeeper数据模型和常用命令
ZooKeeper数据模型
-
类似于Linux下的文件目录
-
每个节点都叫zNode,可以有子节点,也可以有数据
-
每个节点都能设置相应的权限控制用户的访问
-
每个节点存储的数据不宜过大
-
每个节点都带有一个版本号,数据变更时,版本号变更(乐观锁)
-
节点分永久节点跟临时节点
- 临时节点,一旦session断开,节点删除
ZooKeeper常用命令之zkCli
-
zkCli.sh
- 不填后面的参数,默认连接的就是localhost:2181
-
连接远程服务
zkCli.sh -timeout 0 -r -server ip:port
-
zkCli.sh h 出现帮助信息
-
create [-s] [-e] path data acl
-s 表示创建顺序节点
-e 表示创建临时节点
data 创建节点的数据内容 -
查看
- ls path 查看子节点
- get path 获取节点数据
- stat path 查看当前节点状态
-
cZxid = 0x0 事务Id
ctime = Thu Jan 01 08:00:00 CST 1970 节点创建时间
mZxid = 0x0 最后一次更新时的事务id
mtime = Thu Jan 01 08:00:00 CST 1970 最后一次更新时间
pZxid = 0x7 该节点的子节点列表最后一次被修改的事务id
cversion = 3 子节点列表的版本
dataVersion = 0 数据内容的版本
aclVersion = 0
ephemeralOwner = 0x0 用于临时节点,表示创建该临时节点的事务id,如果当前的节点不是临时节点,该字段值为0
dataLength = 0 数据内容的长度
numChildren = 5 子节点的数量
ls2 path 获取节点的子节点以及当前节点的状态
- 修改节点的数据
set path data[version]
- 删除节点数据
delete path[version] 如果有子节点,则不允许删除 rm r path 递归删除整个节点