Zookeeper 常用客户端命令

服务端常用命令

命令 作用
zkServer.sh start 启动ZK服务
zkServer.sh status 查看ZK服务状态
zkServer.sh stop 停止ZK服务
zkServer.sh restart 重启ZK服务

客户端常用命令

使用 zkCli.sh -server 127.0.0.1:2181 连接到 ZooKeeper 服务(不指定就是本机),连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。

命令 作用 备注
ls 显示根目录下、文件 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
ls2 显示根目录下、文件 查看当前节点数据并能看到更新次数等数据
create /zk "test" 创建文件,并设置初始内容 创建一个新的 znode节点“ zk ”以及与它关联的字符串。
create -e创建临时节点;create -S创建顺序节点
get /zk 获取文件内容 确认 znode 是否包含我们所创建的字符串。get -s显示详细信息。
set /zk "zkbak" 修改文件内容 对 zk 所关联的字符串进行设置
delete /zk 删除文件 将刚才创建的 znode 删除,如果存在子节点删除失败
rmr /zk 递归删除 将刚才创建的 znode 删除,子节点同时删除
quit 退出客户端
help 帮助命令

ACL 命令常用命令

命令 作用 示例
getAcl 获取指定节点的 ACL 信息 getAcl /node1
setAcl 设置指定节点的 ACL 信息 setAcl /node1 world:anyone:cdrwa
setAcl /node1 auth:user:123456:cdrwa 要先用addauth命令注册user:123456
如果使用 digest 策略,就要把密码改成BASE64(SHA1) 的密文
addauth 注册会话授权信息 addauth digest user:123456
如果退出客户端后重新连接,要重新注册授权信息。
密文通过 DigestAuththenticationProvider 类生成。比如:
java -classpath /apache-zookeeper-3.6.2-bin/lib/ -cp /apache-zookeeper-3.6.2-bin/lib/zookeeper-3.6.2.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider user:123456

超级管理员

当只给节点读权限的话,那么这个节点就删除不了了,也不能给它在加权限了。只能使用超级管理员。
启动脚本里,在Java命令行里添加:

-Dzookeeper.DigestAuthenticationProvider.superDigest=super:[密文]

密文通过 DigestAuththenticationProvider 类生成。
然后在使用时添加超级管理员权限:

addauth digest super:[密码]

然后就能使用超级管理员的权限了。

ZooKeeper 常用四字命令

ZooKeeper 支持某些特定的四字命令字母与其的交互,用来获取 ZooKeeper 服务的当前状态及相关信息。可通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。

命令 作用
`echo stat nc 127.0.0.1 2181`
`echo ruok nc 127.0.0.1 2181`
`echo dump nc 127.0.0.1 2181`
`echo kill nc 127.0.0.1 2181`
`echo conf nc 127.0.0.1 2181`
`echo cons nc 127.0.0.1 2181`
`echo envi nc 127.0.0.1 2181`
`echo reqs nc 127.0.0.1 2181`
`echo wchs nc 127.0.0.1 2181`
`echo wchc nc 127.0.0.1 2181`
`echo wchp nc 127.0.0.1 2181`

ZooKeeper 日志可视化

日志和快照文件打开全是乱码,需要用日志可视化工具查看。

# 事务日志可视化  (LogFormatter)
java -cp ../../zookeeper-3.4.6.jar;../../lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.LogFormatter log.xxxx

# 数据快照可视化  (SnapshotFormatter)
java -cp ../../zookeeper-3.4.6.jar;../../lib/slf4j-api-1.6.1.jar org.apache.zookeeper.server.SnapshotFormatter snapshot.xxxx

zk 重启后就是通过日志和快照恢复数据的(aof、rdb)。
zk 创建节点虽然是强一致性的,但是时间上的延迟还是有的。
临时节点甚至比持久节点用处大,比如分布式锁和服务注册与发现。
大多数节点存活(一半以上)的时候就能选举,所以适合奇数台。
zk权限用的不多。
zk节点一般存二进制数据,比如存分布式配置中心的相关配置。
dubbo 的服务注册中心用的zk。

posted @ 2021-01-09 16:49  qianbuhan  阅读(301)  评论(0)    收藏  举报