登录到zk客户端:
语法:./zkCli.sh -timeout 0 -r -server ip:port
timeout检查心跳 如果在一定时间没有检测到客户端的心跳包 就认为客户端失效 单位是毫秒
-r表示只读模式 zookeeper集群在一半以上失效时,集群就不再提供服务。但是有时候,我们希望及时集群故障,也会提供服务,尽管是只读,不能写。
启动命令:
./zkCli.sh -timeout 5000 -server 192.168.40.137:2181
输入h可以查看有哪些命令:
查看命令:
ls / 查看根目录下的子节点信息:
其中zookeeper是zk自带的子节点
查看节点状态信息:
stat /zookeeper
cZxid = 0x0 创建节点时的事务id
ctime = Thu Jan 01 08:00:00 CST 1970 创建节点的时间
mZxid = 0x0 更新时的事务id
mtime = Thu Jan 01 08:00:00 CST 1970 更新时的时间
pZxid = 0x0 子节点列表最后一次修改的事务id (可以改变该id的操作有:为当前节点增减子节点, 删除当前节点的一个或者多个子节点)(修改子节点的数据内容不计算在内)
cversion = -2 子节点的版本号
dataVersion = 0 数据版本号
aclVersion = 0 权限版本号
ephemeralOwner = 0x0 创建临时节点的事务id,如果当前节点时持久节点,该值是固定的0
dataLength = 0 当前节点存放数据的长度
numChildren = 2 当前节点所拥有子节点的个数
创建节点:
create [-s] [-e] [-c] [-t ttl] path [data] [acl]
-s表示创建的节点是顺序节点
-e表示当前创建的节点是临时节点 会话结束后,创建的临时节点会从zk服务端删除
-s顺序节点,同一个命令创建的节点,数字顺序增加。可以利用该功能,作为分布式的主键生成器。
修改节点:
set /node_2 1234
修改节点时,如果带版本号,那么版本号必须和当前的dateVersion的版本号一致,否则修改不成功。
删除节点:
delete /node_1
如果节点含有子节点,那么节点不允许删除
如果要删除含有子节点的节点,需要使用deleteall:
创建节点时的限制条件:
setquota -n|-b val path
-n限制子节点的个数 -b限制数据值的长度 val表示对应参数的值
删除限制条件:
delquota [-n|-b] path