连接客户端
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