Quelle commande doit être émise pour vérifier si un serveur ZooKeeper est un leader ou un suiveur?

23

Un quorum ZooKeeper composé de trois serveurs ZooKeeper a été créé.

Le zoo.cfgsitué sur les trois serveurs ZooKeeper se présente comme suit:

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

Une analyse

Il est clair que l'un des trois serveurs ZooKeeper deviendra le Leaderet les autres Followers. Si le Leaderserveur ZooKeeper a été arrêté, l' Leaderélection recommence. Le but est de vérifier si un autre serveur ZooKeeper deviendra le Leadersi le Leaderserveur a été arrêté.


Question

Quelle commande doit être émise pour vérifier si un serveur ZooKeeper est un leader ou un suiveur?

030
la source

Réponses:

50

Il est possible de vérifier si un serveur ZooKeeper est un leader ou un suiveur à l'aide de la nccommande incluse dans le netcatpackage:

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

Si le serveur ZooKeeper est un leader, la commande retournera: Mode: leaderet sinon:Mode: follower

bsd
la source
2
etstandalone
zink
@bsd, existe-t-il un moyen de trouver les nœuds dans le cluster zookeeper ??
murarisumit
2
@sumit Cela a probablement besoin de sa propre question SO, mais une façon consiste simplement à lire le fichier zoo.cfg.
Jose Leon
3

Alternativement, les éléments suivants pourraient être utilisés:

bin/zkServer.sh status

Il imprimera le mode dans la sortie:

ZooKeeper JMX enabled by default
Using config: /home/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower
Caner
la source