ต้องใช้คำสั่งอะไรเพื่อตรวจสอบว่าเซิร์ฟเวอร์ ZooKeeper เป็นผู้นำหรือผู้ติดตามหรือไม่


23

ZooKeeper Quorum ประกอบด้วยเซิร์ฟเวอร์ 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
zinking

@bsd มีวิธีใดบ้างในการค้นหาโหนดในกลุ่ม zookeeper
murarisumit

2
@sumit ที่อาจต้องใช้คำถาม SO ของตัวเอง แต่วิธีหนึ่งคือเพียงอ่านไฟล์ zoo.cfg
Jose Leon Leon

3

อีกทางเลือกหนึ่งต่อไปนี้สามารถใช้ได้:

bin/zkServer.sh status

มันจะพิมพ์โหมดในการส่งออก:

ZooKeeper JMX enabled by default
Using config: /home/kafka/zookeeper/bin/../conf/zoo.cfg
Mode: follower
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.