Perintah apa yang perlu dikeluarkan untuk memeriksa apakah server ZooKeeper adalah Pemimpin atau Pengikut?

23

Kuorum ZooKeeper yang terdiri dari tiga server ZooKeeper telah dibuat.

Yang zoo.cfgterletak di ketiga server ZooKeeper terlihat sebagai berikut:

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

Analisis

Jelas bahwa salah satu dari tiga server ZooKeeper akan menjadi Leaderdan yang lainnya Followers. Jika Leaderserver ZooKeeper dimatikan, Leaderpemilihan akan dimulai lagi. Tujuannya adalah untuk memeriksa apakah server ZooKeeper lain akan menjadi Leaderjika Leaderserver telah dimatikan.


Pertanyaan

Perintah apa yang perlu dikeluarkan untuk memeriksa apakah server ZooKeeper adalah Pemimpin atau Pengikut?

030
sumber

Jawaban:

50

Dimungkinkan untuk memeriksa apakah server ZooKeeper adalah pemimpin atau pengikut menggunakan ncperintah yang termasuk dalam netcatpaket:

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

Jika server ZooKeeper adalah pemimpin maka perintah akan kembali: Mode: leaderdan sebaliknya:Mode: follower

bsd
sumber
2
danstandalone
zinking
@ GBD, apakah ada cara untuk menemukan node di cluster zookeeper ??
murarisumit
2
@ resume Itu mungkin perlu pertanyaan SO sendiri, tetapi salah satu caranya adalah dengan hanya membaca file zoo.cfg.
Jose Leon
3

Atau yang berikut ini dapat digunakan:

bin/zkServer.sh status

Ini akan mencetak mode di output:

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