Sem usar o algoritmo Raft, você pode facilmente fazer a eleição do líder do cluster

Com o rápido desenvolvimento da Internet, se o servidor não usa um modelo de cluster, fico com vergonha de sair para uma entrevista. A maioria dos modelos de cluster atualmente conhecidos são implantados com base na ideia centralizada, e a ideia centralizada é baseada na regra do líder de eleição do servidor. O conhecido algoritmo de consenso Raft pode realizar a eleição do cluster, mas o algoritmo Raft não é Os programadores gerais podem dominar.

O objetivo principal da eleição de cluster é fazer com que o cluster funcione normalmente. O trabalho de eleição de cluster pode ser feito sem o uso de algoritmos complexos como o Raft? Claro que pode, mas com a ajuda de outras tecnologias, hoje irei falar sobre como usar o zookeeper para obter o líder da eleição do cluster.

Funcionário do zoológico

ZooKeeper é um serviço distribuído de coordenação de aplicativos de código aberto, uma implementação de código aberto do Chubby do Google e um componente importante do Hadoop e do Hbase. É um software que fornece serviços consistentes para aplicações distribuídas. As funções fornecidas incluem: manutenção de configuração, serviços de nomes de domínio, sincronização distribuída, serviços de grupo, etc.

O nó Zookeeper é semelhante ao sistema de arquivos UNIX.É um modelo de dados com uma estrutura de árvore de diretório simples.Nesta árvore, cada nó pode ser usado como um ZNode, e cada ZNode pode ser identificado por um caminho exclusivo.
imagem

Nó temporário

No Zookeeper, o nó (ZNode) é dividido em vários tipos, um dos quais é um nó temporário. Ele tem uma característica: seu ciclo de vida está vinculado à sessão do cliente que criou o nó. Uma vez que o cliente é descartado ou Abaixo da máquina, este nó será excluído automaticamente.

Ver

Zookeeper fornece um mecanismo de notificação de mudança de nó, ou seja, o mecanismo de observação. Cada cliente pode selecionar qualquer nó para monitorar. Se o nó monitorado ou o nó filho mudar, todos os clientes de escuta serão notificados. Com base neste princípio, o mecanismo de descoberta automática do servidor de cluster pode ser realizado.

Eleição de cluster

O mais importante para um serviço de cluster distribuído é fornecer serviços ininterruptos ou tolerância a falhas. Quando um nó sai do cluster devido a uma falha ou um novo nó se junta ao cluster, a capacidade de serviço do cluster não será afetada. Quando o nó Líder falha, a função de eleição automática pode ser realizada sem intervenção manual.Como usar o Zookeeper para fazer isso?

Deve haver várias convenções primeiro:

  • Todos os servidores de cluster monitoram o mesmo nó Zookeeper, que atua como um armazenamento para informações de cluster
  • Os servidores no cluster podem usar o ip ou o nome da máquina como nomes de nó, e nenhum nome de nó duplicado é permitido
  • Por padrão, o cluster usa o servidor com a menor ordem de nome como o líder

O processo específico é o seguinte:

  • Quando o primeiro servidor do cluster for iniciado, registre suas informações no nó fixo do Zookeeper e monitore as alterações desse nó. Se você descobrir que possui apenas um servidor, será eleito Líder por padrão.
  • Quando outros servidores iniciam e registram informações no mesmo nó, e monitoram as alterações nas informações desse nó. Constatou que já existe um Líder, atuando como seguidor por padrão.
  • Quando o líder ficar offline devido a uma falha, as informações serão automaticamente excluídas do Zookeeper, e outros nós receberão uma notificação e, em seguida, o nó líder será expulso para entrar no próximo processo de eleição do líder.
  • Dentre os servidores sobreviventes, de acordo com o acordo, o servidor com o menor nome é eleito líder e envia notificações para os demais servidores, neste momento o cluster pode continuar funcionando normalmente.
  • Se o nó não Líder ficar offline, o processo é semelhante ao anterior, mas o processo de eleição é omitido.

Não importa mesmo se os clientes continuarem a cair durante o processo de eleição, porque o Zookeeper pode garantir a consistência dos dados finais, além da restrição de que o menor nome que concordamos é Líder, o estado final do cluster alcançará estabilidade.

Aqui está uma nova pergunta: Haverá um problema de divisão do cérebro ao usar o Zookeeper para conduzir as eleições de agrupamento?

Artigos mais interessantes

imagem

Acho que você gosta

Origin blog.51cto.com/zhanlang/2532769
Recomendado
Clasificación