Яку команду потрібно видавати, щоб перевірити, чи є сервер 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 лідером чи послідовником?

Відповіді:


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


2
таstandalone
цинкування

@bsd, чи є спосіб знайти вузли в кластері zookeeper ??
murarisumit

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.