Zookeeper - Eleição do líder
Vamos analisar como um nó líder pode ser eleito em um conjunto ZooKeeper. Considere que existemNnúmero de nós em um cluster. O processo de eleição do líder é o seguinte -
Todos os nós criam um znode sequencial e efêmero com o mesmo caminho, /app/leader_election/guid_.
O conjunto ZooKeeper anexará o número de sequência de 10 dígitos ao caminho e o znode criado será /app/leader_election/guid_0000000001, /app/leader_election/guid_0000000002, etc.
Para uma determinada instância, o nó que cria o menor número no znode se torna o líder e todos os outros nós são seguidores.
Cada nó seguidor observa o znode com o próximo menor número. Por exemplo, o nó que cria znode/app/leader_election/guid_0000000008 vai assistir o znode /app/leader_election/guid_0000000007 e o nó que cria o znode /app/leader_election/guid_0000000007 vai assistir o znode /app/leader_election/guid_0000000006.
Se o líder cair, então seu znode correspondente /app/leader_electionN é excluído.
O próximo nó seguidor na linha receberá a notificação por meio do observador sobre a remoção do líder.
O próximo nó seguidor da linha verificará se há outros znodes com o menor número. Caso contrário, assumirá o papel de líder. Caso contrário, ele encontra o nó que criou o znode com o menor número como líder.
Da mesma forma, todos os outros nós seguidores elegem o nó que criou o znode com o menor número como líder.
A eleição do líder é um processo complexo quando feito do zero. Mas o serviço ZooKeeper torna isso muito simples. Vamos prosseguir para a instalação do ZooKeeper para fins de desenvolvimento no próximo capítulo.