8

我想在我的 java 应用程序中获取成员服务器列表及其类型(领导者或观察者)。并且还想得到死服务器。

他们有什么办法吗?我阅读了文档,但没有找到。

4

3 回答 3

9

如果有一个内置的答案而不诉诸 JMX,那就太好了。如果您在其中一个 zookeeper 节点上,您可以读取 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

请注意,“stat”不会向您显示 zookeeper 合奏的其他成员——它只会向您显示连接的客户端。

于 2017-11-01T23:12:13.500 回答
2

Zookeeper 通过jmx公开此信息。

于 2013-05-26T01:47:34.013 回答
-2

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

有关如何从 python 执行此操作的示例,请参见: https ://github.com/apache/zookeeper/blob/765cedb5c65526384011ea958e59938fc7493168/src/contrib/huebrowser/zkui/src/zkui/stats.py

于 2016-08-17T22:50:13.550 回答