Zookeeper - การเลือกตั้งผู้นำ
ให้เราวิเคราะห์ว่าโหนดผู้นำสามารถเลือกได้อย่างไรในชุด ZooKeeper พิจารณามีNจำนวนโหนดในคลัสเตอร์ ขั้นตอนการเลือกตั้งหัวหน้ามีดังนี้ -
โหนดทั้งหมดสร้าง znode แบบไม่ต่อเนื่องตามลำดับด้วยพา ธ เดียวกัน /app/leader_election/guid_.
ZooKeeper ทั้งมวลจะต่อท้ายหมายเลขลำดับ 10 หลักเข้ากับพา ธ และ znode ที่สร้างขึ้นจะเป็น /app/leader_election/guid_0000000001, /app/leader_election/guid_0000000002, เป็นต้น
สำหรับอินสแตนซ์ที่กำหนดโหนดที่สร้างจำนวนน้อยที่สุดใน znode จะกลายเป็นผู้นำและโหนดอื่น ๆ ทั้งหมดเป็นผู้ติดตาม
โหนดผู้ติดตามแต่ละโหนดเฝ้าดู znode ที่มีตัวเลขที่เล็กที่สุดถัดไป ตัวอย่างเช่นโหนดที่สร้าง znode/app/leader_election/guid_0000000008 จะดู znode /app/leader_election/guid_0000000007 และโหนดที่สร้าง znode /app/leader_election/guid_0000000007 จะดู znode /app/leader_election/guid_0000000006.
ถ้าผู้นำลงไป znode ที่สอดคล้องกัน /app/leader_electionN ถูกลบ
โหนดผู้ติดตามลำดับถัดไปจะได้รับการแจ้งเตือนผ่านผู้เฝ้าดูเกี่ยวกับการลบผู้นำ
โหนดผู้ติดตามลำดับถัดไปจะตรวจสอบว่ามี znodes อื่นที่มีจำนวนน้อยที่สุดหรือไม่ ถ้าไม่มีก็จะรับหน้าที่เป็นผู้นำ มิฉะนั้นจะพบโหนดที่สร้าง znode โดยมีจำนวนน้อยที่สุดเป็นผู้นำ
ในทำนองเดียวกันโหนดอื่น ๆ ทั้งหมดจะเลือกโหนดที่สร้าง znode โดยมีจำนวนน้อยที่สุดเป็นผู้นำ
การเลือกตั้งผู้นำเป็นกระบวนการที่ซับซ้อนเมื่อดำเนินการตั้งแต่ต้น แต่บริการ ZooKeeper ทำให้ง่ายมาก ให้เราไปที่การติดตั้ง ZooKeeper เพื่อการพัฒนาในบทถัดไป