2013-05-21 51 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」命令相同。具體而言,它仍不會向您顯示法定成員或其狀態,這是原始問題。 –