2013-05-21 28 views

回答

2

Zookeeper通过jmx公开此信息。

+0

但我不想启用JMX – Mavlarn

+0

我认为你必须使用jmx或zookeeper的四个字母单词之一http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands – sbridges

+2

似乎没有其他办法。谢谢。 – Mavlarn

2

如果有这将是很好这是一个内置的答案,不需要使用JMX。如果你在一个动物园管理员节点上,你可以阅读zoo.cfg文件来获取服务器列表(死和活的),然后分别“统计”每个服务器以查看它是否存在以及它的状态(注意成功响应的“模式”属性)。例如: -

$ 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 

注意,“统计”不告诉你的动物园管理员乐团的其他成员 - 那只能说明你连接的客户端。

+0

或新的'echo srvr | nc 127.0.0.1 2181' –

+0

是的,你可以这样做,但“srvr”似乎忽略了连接的客户端信息,并且在输出时与我发布的“stat”命令相同。具体而言,它仍不会向您显示法定成员或其状态,这是原始问题。 –