暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Zookeeper Shell

349

本文主要讲解使用Zookeeper自带的客户端zkCli.sh来进行一些Zookeeper的一些基本操作,如创建删除节点等。

  1. # 进入容器

  2. docker exec -it zookeeper1 bash

  3. # 连接zookeeper节点

  4. zkCli.sh -server zoo1:2181

  5. # 查看帮助

  6. help

Zookeeper中主要有以下操作,如下图:

创建节点

  1. # -s:指定节点是顺序节点

  2. # -e:指定节点时临时节点

  3. # path:指定节点路径

  4. # data:节点存储的数据内容

  5. # acl:该节点的权限策略

  6. create [-s] [-e] path data acl

  7. # 举个例子:在根节点创建一个持久化节点名称为zk_learn,数据是123

  8. create /zk_learn 123

读取

读取主要是展示节点列表和节点内容,与读取相关的命令是ls和get。

  1. # 列出指定节点下面的所有子节点(只能列出下一级),你会发现在根节点下面有一个Zookeeper的保留节点,名称就是zookeeper

  2. # path:指定节点路径

  3. # watch:是否对目录的变动进行监听

  4. ls path [watch]

  5. # 列出子节点和该节点的属性信息

  6. ls2 path [watch]

  7. # 读取指定节点的内容和属性信息

  8. # path:指定节点路径

  9. # watch:是否对节点内容变动进行监听

  10. get path [watch]

下图主要是节点的内容和属性,下面解释一下图中的信息:

  • 第一行数据(123):就是我们设置的该节点的内容

  • cZxid:创建该节点的事务id

  • ctime:创建该节点的时间

  • mZxid:最后一次更新该节点的事务id

  • mtime:最后一次更新该节点的时间

  • pZxid:该节点的子节点列表最后一次被修改的事务的id(例如为当前节点添加子节点、从当前节点的子节点中删除一个或多个子节点都会引起节点的子节点的列表的改变, 而修改节点的数据内容则不在此列)

  • cversion:子节点列表的版本

  • dataVersion:数据内容的版本

  • aclVersion:ACL的版本

  • ephemeralOwner:用于临时节点,表示创建该临时节点的事务id,如果当前节点是永久节点,这个值固定为0

  • dataLength:存放的数据长度

  • numChildren:子节点的数量

更新

更新指定节点的内容,使用set命令。

  1. # 设置指定节点的内容

  2. # path:指定节点路径

  3. # data:设置节点的新内容

  4. # version:指定本次操作是基于ZNode的哪个版本(dataVersion)进行的

  5. set path data [version]

删除

删除指定的节点,使用delete、rmr命令。

  1. # 删除指定的节点,如果该节点下面还有子节点则无法删除

  2. # path:指定节点的路径

  3. # version:指定本次操作是基于ZNode的哪个版本(dataVersion)进行的

  4. delete path [version]

  5. # 删除包含子节点的节点

  6. rmr path

其他命令

  1. # 设置配额,解释见下一行注释

  2. # 设置指定路径可以创建的子节点数量或存储数据的最大长度,超过也允许创建,只是给出警告日志

  3. # -n:表示限制子节点的个数

  4. # -b:表示限制数据的长度

  5. setquota -n|-b val path

  6. # 列出指定节点的配额

  7. listquota path

  8. # 删除配额

  9. delquota [-n|-b] path

文章转载自程序员修炼笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论