Zookeeper - Bầu cử lãnh đạo
Hãy để chúng tôi phân tích cách một nút lãnh đạo có thể được bầu chọn trong nhóm ZooKeeper. Hãy xem xét cóNsố lượng nút trong một cụm. Quy trình bầu cử lãnh đạo như sau:
Tất cả các nút tạo ra một znode tuần tự, tạm thời với cùng một đường dẫn, /app/leader_election/guid_.
Nhóm ZooKeeper sẽ nối số thứ tự gồm 10 chữ số vào đường dẫn và znode được tạo sẽ là /app/leader_election/guid_0000000001, /app/leader_election/guid_0000000002, Vân vân.
Đối với một trường hợp nhất định, nút tạo ra số nhỏ nhất trong znode sẽ trở thành nút dẫn đầu và tất cả các nút khác là người theo dõi.
Mỗi nút theo dõi xem znode có số nhỏ nhất tiếp theo. Ví dụ: nút tạo znode/app/leader_election/guid_0000000008 sẽ xem znode /app/leader_election/guid_0000000007 và nút tạo znode /app/leader_election/guid_0000000007 sẽ xem znode /app/leader_election/guid_0000000006.
Nếu nhà lãnh đạo đi xuống, thì znode tương ứng của nó /app/leader_electionN bị xóa.
Nút theo dõi tiếp theo trong dòng sẽ nhận được thông báo thông qua người theo dõi về việc loại bỏ người lãnh đạo.
Nút theo dõi dòng tiếp theo sẽ kiểm tra xem có các znodes khác có số lượng nhỏ nhất hay không. Nếu không có, thì nó sẽ đảm nhận vai trò của người lãnh đạo. Nếu không, nó tìm thấy nút đã tạo znode có số nhỏ nhất làm thủ lĩnh.
Tương tự, tất cả các nút theo dõi khác chọn nút đã tạo znode có số lượng nhỏ nhất làm nhóm trưởng.
Bầu cử lãnh đạo là một quá trình phức tạp khi nó được thực hiện từ đầu. Nhưng dịch vụ ZooKeeper làm cho nó rất đơn giản. Chúng ta hãy chuyển sang cài đặt ZooKeeper cho mục đích phát triển trong chương tiếp theo.