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:cdrwasetAcl /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。

浙公网安备 33010602011771号