Какую команду нужно выполнить, чтобы проверить, является ли сервер ZooKeeper лидером или последователем?

23

Был создан Кворум ZooKeeper, состоящий из трех серверов ZooKeeper.

zoo.cfgРасположено на все три Zookeeper сервера выглядят следующим образом :

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

Анализ

Понятно, что одним из трех серверов ZooKeeper станут Leaderи другие Followers. Если Leaderсервер ZooKeeper был выключен, Leaderвыборы начнутся снова. Цель состоит в том, чтобы проверить, станет ли другой сервер ZooKeeper тем, был Leaderли Leaderсервер выключен.


Вопрос

Какую команду нужно выполнить, чтобы проверить, является ли сервер ZooKeeper лидером или последователем?

+030
источник

Ответы:

50

Можно проверить, является ли сервер ZooKeeper лидером или последователем, используя ncкоманду, которая входит в netcatпакет:

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

Если сервер ZooKeeper является лидером, команда вернется: Mode: leaderи в противном случае:Mode: follower

BSD
источник
2
иstandalone
мелькает
@bsd, есть ли способ найти узлы в кластере zookeeper ??
Мурарисумит
2
@sumit Это, вероятно, нуждается в собственном вопросе SO, но один из способов - просто прочитать файл zoo.cfg.
Хосе Леон
3

В качестве альтернативы можно использовать следующее:

bin/zkServer.sh status

Он выведет режим на выходе:

ZooKeeper JMX enabled by default
Using config: /home/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower
Джанер
источник