3 개의 ZooKeeper 서버로 구성된 ZooKeeper Quorum이 생성되었습니다.
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
분석
3 대의 ZooKeeper 서버 중 하나가 Leader
다른 서버가 될 것이 분명합니다 Followers
. 는 IF Leader
사육사 서버가 종료 된 Leader
선거가 다시 시작됩니다. 목표는 다른 사육사 서버가 될 것입니다 있는지 확인하는 것입니다 Leader
경우 Leader
서버가 종료되었습니다.
의문
ZooKeeper 서버가 리더인지 팔로어인지 확인하려면 어떤 명령을 실행해야합니까?
답변
패키지에 nc
포함 된 명령을 사용하여 ZooKeeper 서버가 리더인지 팔로워인지 확인할 수 있습니다 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
답변
또는 다음을 사용할 수 있습니다.
bin/zkServer.sh status
출력에서 모드를 인쇄합니다.
ZooKeeper JMX enabled by default
Using config: /home/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower