zk安装启动完成后,进入bin目录。找到 zkCli.sh
使用命令 zkCli.sh 默认连接本机conf下zoo.cfg配置默认的zk端口。
也可以使用 ./zkCli.sh -server ip地址:端口号 连接指定的zk服务器
或者使用zk的可视化工具zktools,ZooInspector 连接zk。
下面介绍使用命令行操作zk:
zk的数据已节点的形式保存,节点允许存在子节点。所以zk的数据模型是 树
zk的节点分为4种:
-
持久节点(PERSISTENT)。节点创建后便一直存在于ZooKeeper服务器上,除非有操作主动删除该节点。
-
持久顺序节点(PERSISTENT_SEQUENTIAL)。相比持久节点,其新增了顺序特性,每个父节点都会为它的第一级子节点维护一份顺序,用于记录每个子节点创建的先后顺序。在创建节点时,会自动添加一个数字后缀,作为新的节点名,该数字后缀的上限是整形的最大值。
-
临时节点(EPEMERAL)。临时节点的生命周期与客户端会话绑定,客户端失效,节点会被自动清理。同时,ZooKeeper规定不能基于临时节点来创建子节点,即临时节点只能作为叶子节点。
-
临时顺序节点(EPEMERAL_SEQUENTIAL)。在临时节点的基础添加了顺序特性。
使用命令 ls / 查看所有节点
创建节点
使用命令 create [-s] [-e] [-c] [-t ttl] path [data] [acl] -c(3.5版本之后新增,也可以不加) 创建永久节点 -e 创建临时节点 -s创建循序节点 临时节点不循序拥有循序节点和子节点 当会话结束,临时节点自动删除
删除节点
使用命令 deleteall path (rmr path 此命令在3.5版本已废弃) 或者 delete [-v version] path
获取节点
使用命令 get [-s] [-w] path -w表示watch 监听事件
设置节点数据
使用命令 set [-s] [-v version] path data
设置节点监听
使用命令stat [-w] path 或者 ls2 path [watch] ,使用命令行设置监听只能生效一次
获取控制ACL
使用命令 getAcl [-s] path
设置ACL控制
使用命令 setAcl [-s] [-v version] [-R] path acl
动态设置zk集群 (3.5新增)
使用命令 reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
解决困扰依旧的zk扩容,需要每台服务器都重新配置zoo.cfg文件和重启zk的问题