连接客户端
ZK位于安装目录的客户端bin目录下。ZK的客户端为zkCli.sh
,进入bin目录后执行./zkCli.sh
即可启动客户端。
zkCli.sh
还可以携带一些参数:
./zkCli.sh –timeout 1000 –r –server ip:port -timeout 1000:设置超时时间,单位毫秒 -r:设置为只读权限,不添加-r可读可写权限 -server ip:port:指定连接的ZK服务器和端口号
若连接本机ZK服务,然后就可以了bin直接输入目录:./zkCli.sh
,连接成功:
增加节点
首先解一下ZK节点类型,ZNode目录节点有四种形式:
PERSISTENT
:持久节点,客户端和ZK断开连接后,节点仍然存在。PERSISTENT_SEQUENTIAL
:持久顺序节点、客户端和ZK断开连接后,节点仍然存在,但ZK顺序编号节点名称。EPHEMERAL
:临时节点,客户端和ZK断开连接后,节点被删除。EPHEMERAL_SEQUENTIAL
:临时顺序节点、客户端和ZK断开连接后,节点被删除,但ZK顺序编号节点名称。
使用ZK客户端连接到服务后,可以使用以下命令创建节点:
create [-s] [-e] path data [acl] -s:默认创建非顺序节点而不添加此参数 -e:默认创建临时节点而不添加此参数 alc:与权限相关的修饰符
删除节点
删除ZK节点有两种方式:
# 当节点下包含子节点时,不能删除指定节点。 delete path [version] version : 版本号,和set同样的命令意味着相同的版本可以成功删除
# 节点的递归删除 rmr path
检查节点状态
stat path [watch] watch:一次性监听器
每一个ZK节点具有以下状态属性:
列出目录下的节点
还有两种方法可以列出节点:
# 简单列出节点 ls path [watch] watch:一次性监听器
# 列出节点同时显示当前节点的状态,相当于 ls stat ls2 path [watch] watch:一次性监听器
设置节点数据
set path data [version] version:数据版,对应stat的dataVersion默认自动增加属性
查询节点数据
get path [watch] watch:一次性监听器
节点配额相关
节点配额可以限制节点创建子节点的数量和节点本身可以存储的数据的最大长度。但当超过限制时,它只是在ZK日志打印警告信息(默认输出bin/zookeeper.out
)。
# 设置配额 setquota -n | -b val path -n:val设置子节点的数量 -b:val设置节点的数据长度
# 查看配额 listquota path
# 删除配额 delquota -n | -b path
查看历史,重复执行
# 用于列出最近的命令历史 history
[zk: localhost:2181(CONNECTED) 1] history 0 - help 1 - get / 2 - stat / 3 - ls / 4 - ls2 / 5 - listquota / 6 - history
# 重新执行历史命令 redo 顺序ID