服务端常用命令
命令 | 作用 |
| 启动ZK服务 |
| 查看ZK服务状态 |
| 停止ZK服务 |
| 重启ZK服务 |
客户端常用命令
使用 zkCli.sh -server 127.0.0.1:2181
连接到 ZooKeeper 服务(不指定就是本机),连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。
命令 | 作用 | 备注 |
| 显示根目录下、文件 | 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容 |
| 显示根目录下、文件 | 查看当前节点数据并能看到更新次数等数据 |
| 创建文件,并设置初始内容 | 创建一个新的 znode节点“ zk ”以及与它关联的字符串。
|
| 获取文件内容 | 确认 znode 是否包含我们所创建的字符串。 |
| 修改文件内容 | 对 zk 所关联的字符串进行设置 |
| 删除文件 | 将刚才创建的 znode 删除,如果存在子节点删除失败 |
| 递归删除 | 将刚才创建的 znode 删除,子节点同时删除 |
| 退出客户端 | |
| 帮助命令 |
ACL 命令常用命令
命令 | 作用 | 示例 |
| 获取指定节点的 ACL 信息 |
|
| 设置指定节点的 ACL 信息 |
如果使用 digest 策略,就要把密码改成 |
| 注册会话授权信息 |
|
密文通过 |
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。