使用Zookeeper API,能否知道当前服务器是否是Zookeeper集群的领导者?
文档提到:“领导者已经看到所有追随者中最高的zxid。” 有没有办法进行检查?
文档提到:“领导者已经看到所有追随者中最高的zxid。” 有没有办法进行检查?
./bin/zkServer.sh status
。您将得到以下形式的答案:
对于领导节点,最后一行将相应地显示。ZooKeeper JMX默认启用
使用配置:/path/to/conf/zoo.cfg
模式:follower
FourLetterWordMain
:String zkAnswer = FourLetterWordMain.send4LetterWord ("<zk-address>", <zk-port>, "srvr");
zookeeper版本:3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f,构建于2017年3月23日10:13 GMT
延迟最小值/平均值/最大值:0/0/6
接收数量:18893
发送数量:18957
连接数:2
未完成的请求数:0 Zxid:0x280000016d
模式:领导者
节点计数:337
这段代码基本上也被zkServer.sh
脚本使用。
不,那是明确隐藏的。您可以使用JMX或其中一个四个字母的单词,但这超出了客户端API的范围。