根据上一篇博客的操作,我们已经搭建好一个ZooKeeper集群,接下来我们开始学习使用ZooKeeper客户端对ZooKeeper进行操作。首先,我们要启动zkCli.cmd这个脚本。启动后在不知道任何指令的情况下,可以先输入help查看客户端有哪些指令。有一点需要注意的是,客户端默认连接本地ZooKeeper服务器,如果需要制定服务器,通过 -server ip:port指令即可实现。
这里写图片描述

1.创建

使用create指令,可以创建一个ZooKeeper节点,用法如下:
create [-s] [-e] path data acl
其中,-s或者-e分别指节点特性:顺序或者临时节点。默认情况下,即加入任何参数,创建节点是持久节点。最后一个参数acl是用来进行权限控制的,缺省情况下,不做任何权限控制。
执行如下命令:
这里写图片描述
执行完上述命令,就在ZooKeeper的根节点下创建一个叫做zk的节点,并且节点的内容是666。

2.读取—ls和get

使用ls命令,可以列出ZooKeeper指定节点下的所有子节点。该命令只能看到指定节点下一级的所有节点,用法如下:
ls path [watch]
其中path表示指定数据节点的节点路径。
执行命令如下:
这里写图片描述
使用get命令,可以获取指定节点的数据内容和属性信息,用法如下:
get path [watch]
执行命令如下:
这里写图片描述
从上面输出信息,我们可以看出第一行是节点zk的数据内容,其他几行则是zk节点的属性信息,具体含义可以由属性的名字看出。

3.更新

使用set命令,可以更新指定节点的数据内容,用法如下:
set path data [version]
其中,data是需要更新的新内容,version是用于指定本次更新是基于ZNode的哪一个版本进行的。
执行命令如下:
这里写图片描述
执行完上述命令之后,zk节点的数据被更新为999了,在输出信息中,我们还可以发现,dataVersion的值由原来的0变为1了。

4.删除

使用delete命令,可是删除ZooKeeper上指定节点,用法如下:
delete path [version]
此命令中的version参数和set命令的version参数作用一致。
执行命令如下:
这里写图片描述
执行完上述命令,就可以吧zk节点删除了。但是这里需要注意一点的是,要想删除某一指定节点,该节点必须没有子节点存在,执行以下命令可以验证:
这里写图片描述
通过输出结果:Node not empty,看以看出无法删除一个包含子节点的节点。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐