我想在我的 Java 应用程序中获取成员服务器列表及其类型(领导者或观察者)。
并且还想得到死服务器。
他们有办法做到这一点吗?我阅读了文档,但没有找到。
最佳答案
如果有一个内置的答案而不求助于 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 ensemble 的其他成员——它只向您显示已连接的客户端。
关于apache-zookeeper - 如何获取当前zookeeper集群的成员服务器列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669104/