Quale comando deve essere emesso per verificare se un server ZooKeeper è un leader o un follower?


23

È stato creato un quorum ZooKeeper composto da tre server ZooKeeper.

Si zoo.cfgtrova su tutti e tre i server ZooKeeper come segue:

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

Analisi

È chiaro che uno dei tre server ZooKeeper diventerà Leadere gli altri Followers. Se il Leaderserver ZooKeeper è stato chiuso, le Leaderelezioni ricominceranno. L'obiettivo è verificare se un altro server ZooKeeper diventerà Leaderse il Leaderserver è stato spento.


Domanda

Quale comando deve essere emesso per verificare se un server ZooKeeper è un leader o un follower?

Risposte:


50

È possibile verificare se un server ZooKeeper è un leader o un follower utilizzando il nccomando incluso nel netcatpacchetto:

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

Se il server ZooKeeper è un leader, il comando restituirà: Mode: leadere altrimenti:Mode: follower


2
estandalone
tintinnio il

@bsd, c'è un modo per trovare i nodi nel cluster zookeeper ??
murarisumit,

2
@sumit Questo probabilmente ha bisogno della sua domanda SO, ma un modo è semplicemente leggere il file zoo.cfg.
Jose Leon,

3

In alternativa, è possibile utilizzare quanto segue:

bin/zkServer.sh status

Stampa la modalità nell'output:

ZooKeeper JMX enabled by default
Using config: /home/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.