Apache zookeeper 如何获取当前zookeeper集群';s成员服务器列表

Apache zookeeper 如何获取当前zookeeper集群';s成员服务器列表,apache-zookeeper,Apache Zookeeper,我想在java应用程序中获取成员服务器列表及其类型(Leader或observer)。 还想得到死掉的服务器 他们有办法做到这一点吗?我阅读了文档,但没有找到。Zookeeper将此信息公开。也可以通过直接连接端口2181查询发送“stat”命令 有关如何从python执行此操作的示例,请参见: 如果有一个内置的答案,而不必求助于JMX,那就太好了。如果您位于zookeeper节点之一,则可以读取zoo.cfg文件以获取服务器列表(死服务器和活服务器),然后分别“统计”每个服务器,查看其是否处于

我想在java应用程序中获取成员服务器列表及其类型(Leader或observer)。 还想得到死掉的服务器


他们有办法做到这一点吗?我阅读了文档,但没有找到。

Zookeeper将此信息公开。

也可以通过直接连接端口2181查询发送“stat”命令

有关如何从python执行此操作的示例,请参见:
如果有一个内置的答案,而不必求助于JMX,那就太好了。如果您位于zookeeper节点之一,则可以读取zoo.cfg文件以获取服务器列表(死服务器和活服务器),然后分别“统计”每个服务器,查看其是否处于活动状态及其状态(请注意成功响应中的“Mode”属性)。例如:


请注意,“stat”并没有显示zookeeper集合的其他成员,它只显示连接的客户端。

但我不想启用JMXI。我认为您必须使用jmx或zookeeper四个字母中的一个,似乎没有其他方法。谢谢。或者新的
echo srvr | nc 127.0.0.1 2181
是的,您可以这样做,但是“srvr”似乎忽略了连接的客户端信息,并且在其他方面与我发布的“stat”命令的输出相同。具体来说,它仍然没有向您显示仲裁成员或他们的状态,这是最初的问题。如果我不喜欢python呢?
$ echo stat | nc 127.0.0.1 2181
Zookeeper version: 3.4.5--1, built on 06/10/2013 17:26 GMT
Clients:
 /127.0.0.1:54752[1](queued=0,recved=215524,sent=215524)
 /127.0.0.1:59298[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/6
Received: 5596
Sent: 5596
Connections: 2
Outstanding: 0
Zxid: 0x10000010f
Mode: leader
Node count: 54