如何验证动物园管理员法定人数

How to validate zookeeper quorum

如何验证 zookeeper 中的所有节点都是法定人数的一部分并且是健康的? Manual 谈论 "ruok" 但这仍然没有说明 zookeeper 节点是否是仲裁的一部分并且是否与其余节点同步。

您可以使用 The Four Letter Words 中记录的 srvr 命令来获取有关整体中每个 ZooKeeper 服务器的更详细的状态信息。请参阅下面的 3 节点集群的示例输出,其中主机名为 ubuntu1、ubuntu2 和 ubuntu3。

模式字段将告诉您该特定服务器是领导者还是追随者。 Zxid 字段是指 ZooKeeper 集群的内部事务 ID,用于跟踪 znode 树的状态更改。在一个健康的集群中,您会看到一个领导者,多个追随者,并且所有节点通常在 zxid 值中彼此接近。

> for x in ubuntu1 ubuntu2 ubuntu3; do echo $x; echo srvr|nc $x 2181; echo; done
ubuntu1
Zookeeper version: 3.4.7-1713338, built on 11/09/2015 04:32 GMT
Latency min/avg/max: 3/9/21
Received: 9
Sent: 8
Connections: 1
Outstanding: 0
Zxid: 0x100000004
Mode: follower
Node count: 6

ubuntu2
Zookeeper version: 3.4.7-1713338, built on 11/09/2015 04:32 GMT
Latency min/avg/max: 0/0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x100000004
Mode: leader
Node count: 6

ubuntu3
Zookeeper version: 3.4.7-1713338, built on 11/09/2015 04:32 GMT
Latency min/avg/max: 0/0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x100000004
Mode: follower
Node count: 6