Zookeeper 节点与客户端操作命令

zookeeper 节点的属性

  • dataVersion: 数据版本号,每对节点进行一次 set 操作,dataVersion 的值都会增加 1
  • cversion: 子节点版本号,当子节点有变化时,cversion 的值就会加1
  • aclVersion: ACL 版本号
  • cZxid: Znode 创建的事物 ID
  • mZxid: Znode 被修改的事物 ID,每修改一次 Znode,都会更新 mZxid
  • ctime: 节点创建的时间戳
  • mtime: 节点最新一次更新的时间戳
  • ephemeralOwner: 如果该节点为临时节点,那么该值将会与该节点的 session id 绑定,如果该节点为非临时节点,则为 0。

zookeeper 客户端命令

创建节点

创建节点的命令格式
create [-s] [-e] /path data acl

  • -s 代表序列化
  • -e 代表临时节点,临时节点在连接断开后,过一段时间会被删除(不会立刻删除)
  • path: 节点的路径
  • data: 节点的数据
  • acl: 进行权限控制
# 创建节点
create /testzk 123
# 创建临时节点
create /tempnode 121

读取节点

zookeeper 节点有三个命令

  • ls: ls [-s] [-w] [-R] path 能够查看 zookeeper 指定节点下的所有子节点
  • get: get [-s] [-w] path 查看指定节点的数据内容
  • stat: stat [-w] path 查看节点属性信息

参数

  • -s: 用于查看节点状态或者属性信息
  • -w: 设置观察者
  • -R: 递归显示子节点
# 查看根节点下的所有节点
ls /
# 查看节点数据
get /tempnode
# 查看节点数据同时查看节点状态
get -s /tempnode
# 查看节点属性信息
stat /testzk

更新节点的值

更新 zookeeper 节点的命令格式
set [-s] [-v version] path data

  • s: 显示状态
set /testzk newdata

删除节点

删除 zookeeper 节点的命令

  • delete: 删除特定路劲下的节点
  • deleteall: 删除特定路劲下的所有子节点
# 删除节点
delete /path
# 删除所有节点下的子节点
deleteall /path

节点的限制

增加节点限制
setquota -n|-b val path

  • n: 限制子节点的个数
  • b: 限制节点数据的字节数
  • val: 限制的数值,-1代表没有限制

PS:对于节点的限制只是一个温和性的限制,如果创建的节点数超出限制,会在日志文件中爆出警告,但不会限制新节点的创建。

列出所有节点的限制
listquota path

删除节点限制
delquota [-n|-b] path

# 限制字节点的个数
 setquota -n 2 /quota_test
 # 限制子节点的字节数
setquota -b 5 /quota_test
# 列出节点限制
listquota /quota_test
# 删除节点限制
 delquota /quota_test

查看历史命令

查看客户端的命令历史,最多只能显示 11 条

# 查看历史命令
history
# 重做命令
redo 5

退出客户端

# 退出客户端
quit