Zookeeper - Lider Seçimi
Bir ZooKeeper topluluğunda bir lider düğümün nasıl seçilebileceğini analiz edelim. Orada düşününNbir kümedeki düğüm sayısı. Lider seçim süreci şu şekildedir:
Tüm düğümler aynı yola sahip sıralı, geçici bir znode oluşturur, /app/leader_election/guid_.
ZooKeeper topluluğu 10 basamaklı sıra numarasını yola ekleyecek ve oluşturulan znode /app/leader_election/guid_0000000001, /app/leader_election/guid_0000000002, vb.
Belirli bir örnek için, znode'daki en küçük sayıyı yaratan düğüm lider olur ve diğer tüm düğümler follower'lar olur.
Her takipçi düğümü, bir sonraki en küçük numaraya sahip olan znode'u izler. Örneğin, znode'u oluşturan düğüm/app/leader_election/guid_0000000008 znode'u izleyecek /app/leader_election/guid_0000000007 ve znode'u oluşturan düğüm /app/leader_election/guid_0000000007 znode'u izleyecek /app/leader_election/guid_0000000006.
Lider aşağı inerse, karşılık gelen z düğümü /app/leader_electionN silinir.
Bir sonraki satır takipçisi düğümü, izleyici aracılığıyla liderin kaldırılmasıyla ilgili bildirimi alır.
Bir sonraki satır takipçisi düğümü, en küçük numaraya sahip başka znode olup olmadığını kontrol edecektir. Hiçbiri yoksa lider rolünü üstlenecektir. Aksi takdirde, lider olarak en küçük sayıya sahip znode'u oluşturan düğümü bulur.
Benzer şekilde, diğer tüm takipçi düğümleri lider olarak en küçük sayıya sahip z düğümünü oluşturan düğümü seçer.
Lider seçimi, sıfırdan yapıldığında karmaşık bir süreçtir. Ancak ZooKeeper hizmeti bunu çok basit hale getiriyor. Gelecek bölümde geliştirme amacıyla ZooKeeper kurulumuna geçelim.