web-dev-qa-db-ja.com

ZooKeeperサーバーがリーダーであるかフォロワーであるかを確認するためにどのコマンドを発行できますか?

3つのZooKeeperサーバーで構成されるZooKeeperクォーラムが作成されました。

3つのZooKeeperサーバーすべてにあるZoo.cfgは次のようになります。

maxClientCnxns=50
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/var/lib/zookeeper
# the port at which the clients will connect
clientPort=2181

server.1=<ip-address-1>:2888:3888
server.2=<ip-address-2>:2888:3888
server.3=<ip-address-3>:2888:3888

分析

3つのZooKeeperサーバーの1つがLeaderになり、他のサーバーはFollowersになることは明らかです。 Leader ZooKeeperサーバーがシャットダウンされている場合、Leaderの選択が再開されます。目的は、Leaderサーバーがシャットダウンされた場合に、別のZooKeeperサーバーがLeaderになるかどうかを確認することです。

24
030

ncパッケージに含まれているnetcatコマンドを使用して、ZooKeeperサーバーがリーダーであるかフォロワーであるかを確認できます。

echo stat | nc localhost 2181 | grep Mode
echo srvr | nc localhost 2181 | grep Mode #(From 3.3.0 onwards)

ZooKeeperサーバーがリーダーである場合、コマンドはMode: leaderを返し、それ以外の場合はMode: followerを返します。

53
bsd

あるいは、以下を使用することもできます。

bin/zkServer.sh status

出力にモードを出力します。

ZooKeeper JMX enabled by default
Using config: /home/kafka/zookeeper/bin/../conf/Zoo.cfg
Mode: follower
3
Caner