Que comando precisa ser emitido para verificar se um servidor ZooKeeper é um Líder ou um Seguidor?

20

Um Quorum do ZooKeeper que consiste em três servidores ZooKeeper foi criado.

O zoo.cfg localizado em todos os três servidores ZooKeeper é o seguinte:

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

Análise

É claro que um dos três servidores do ZooKeeper se tornará o Leader e os outros Followers . Se o servidor Leader ZooKeeper tiver sido encerrado, a eleição Leader será iniciada novamente. O objetivo é verificar se outro servidor ZooKeeper se tornará o Leader se o servidor Leader tiver sido encerrado.

Pergunta

Qual comando precisa ser emitido para verificar se um servidor ZooKeeper é um Líder ou um Seguidor?

    
por 030 03.06.2014 / 11:07

1 resposta

44

É possível verificar se um servidor ZooKeeper é líder ou seguidor usando o comando nc que está incluído no pacote netcat :

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

Se o servidor ZooKeeper for líder, o comando retornará: Mode: leader e caso contrário: Mode: follower

    
por 10.06.2014 / 13:05