Apache zookeeper zookeeper检查特定服务器是否处于领先地位
使用Zookeeper API,是否可以知道当前服务器是否是Zookeeper集群的领导者Apache zookeeper zookeeper检查特定服务器是否处于领先地位,apache-zookeeper,Apache Zookeeper,使用Zookeeper API,是否可以知道当前服务器是否是Zookeeper集群的领导者 文档中提到领导者在所有追随者中看到了最高的zxid。。有没有可能以某种方式检查这个问题?没有,这是显式隐藏的。您可以使用JMX或四个字母中的一个,但这超出了客户端API。您必须向每个实例发送一个stat/srvr四个字母的单词,然后解析结果。领导者将是一个“模式:领导者”。然而,这不是非常有用的信息。领导者可以随时改变。您为什么需要这些信息?您可以从不同的位置找到这些信息。 最简单的方法是从每台Zooke
文档中提到领导者在所有追随者中看到了最高的zxid。。有没有可能以某种方式检查这个问题?没有,这是显式隐藏的。您可以使用JMX或四个字母中的一个,但这超出了客户端API。您必须向每个实例发送一个stat/srvr四个字母的单词,然后解析结果。领导者将是一个“模式:领导者”。然而,这不是非常有用的信息。领导者可以随时改变。您为什么需要这些信息?您可以从不同的位置找到这些信息。 最简单的方法是从每台Zookeeper机器上运行脚本
/bin/zkServer.sh status
。您将得到以下形式的答案:
ZooKeeper JMX默认启用使用config:/path/to/conf/zoo.cfg
模式:跟随者 对于引线节点,最后一行将相应地显示 如果您想从导入了ZK客户端库的Java代码中实现这一点,可以使用类
FourletWordMain
,如下所示:
String zkAnswer = FourLetterWordMain.send4LetterWord ("<zk-address>", <zk-port>, "srvr");
String zkarse=FourLetterWordMain.send4LetterWord(“,“srvr”);
答案字符串如下所示:
Zookeeper版本:3.4.10-39D3A4F269333C922ED3DB283BE479F9DEACA0F,于2017年3月23日10:13 GMT建立最小/平均/最大延迟:0/0/6
收到:18893
发送:18957
连接:2个
未付:0 Zxid:0x280000016d
模式:领导者
节点数:337
这段代码基本上也被
zkServer.sh
脚本使用。为什么你想知道你是否连接到了领导者?没有特别的原因。我可以用一种不需要知道的方式来写我的逻辑。我只是想知道你能不能查一下四个字母中的一个?