Por que os nós do cluster do Zookeeper devem ser implantados em números ímpares

Por que os nós do cluster do Zookeeper devem ser implantados em números ímpares

Por que o número de nós do cluster do Zookeeper deve ser ímpar? Quando entramos em contato com essa questão, poderíamos pensar que o mecanismo eleitoral do tratador exige que a maioria obedeça à minoria, e devemos ser estranhos, caso contrário não poderão ser realizadas eleições normais. Então a resposta é realmente assim?


De fato, depois de entender o algoritmo do protocolo de consistência de cluster do Zookeeper-ZAB , descobrimos que esse não é o caso.Veremos que no protocolo ZAB do Zookeeper, quando o Leader é eleito na recuperação de falhas, haverá uma lógica de processamento ao votar:Compare o ZXID primeiro e depois o myidDe acordo com o exemplo de implantação do cluster do Zookeeper na implantação do cluster do Zookeeper , descobrimos que, mesmo que o ZXID seja o mesmo, também podemos eleger o nó Leader comparando myid (myid definitivamente não será o mesmo).


Além disso, também podemos entender o algoritmo de protocolo de consistência-Paxos , que exige apenas a maioria dos votos para passar, para que possamos implantar um número par de unidades, nem mesmo os nós podem causar o mesmo número de votos. Ou seja, não causará o mesmo número de votos por causa de nós pares, porque nem metade deles falhará.


A seguir, estão todas as conclusões teóricas que aprendemos com o algoritmo Paxos e o ZAB, depois podemos verificá-lo com exemplos práticos e agora seguiremos as etapas introduzidas na implantação anterior do cluster do Zookeeper para implantar um nó de 2 Cluster Zookeeper, vamos testar se ele pode ter sucesso
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Então podemos iniciar as duas máquinas, da seguinte maneira:
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Verificou-se que o número de nós em nosso cluster do Zookeeper é 2, ou seja, números pares podem ser implantados com sucesso.




Então, por que os nós do cluster do Zookeeper devem ser implantados em números ímpares? Se a eleição não for possível devido a números pares, qual é o motivo?
É porqueO cluster do Zookeeper possui esse recurso: enquanto mais da metade das máquinas do cluster estiver funcionando normalmente, o cluster inteiro estará disponível para o mundo externo.


Ou seja, se houver 3 nós do Zookeeper, se 1 nó do Zookeeper estiver morto, restarão 2 nós normais.Com mais da metade dos nós sobreviventes, o serviço Zookeeper ainda pode ser usado. No entanto, se dois nós do Zookeeper estiverem mortos e apenas um nó normal sobrar, e o número de nós sobreviventes não for mais da metade, o serviço Zookeeper não poderá ser usado.

Da mesma forma, se houver 4 nós do Zookeeper, se 1 nó do Zookeeper estiver morto, restarão 3 nós normais.Com mais da metade dos nós sobreviventes, o serviço Zookeeper ainda pode ser usado. No entanto, se dois nós do Zookeeper estiverem mortos e restarem apenas dois nós normais, e o número de nós sobreviventes não for mais da metade, o serviço Zookeeper não poderá ser usado.

Podemos enviar 3 nós do Zookeeper e 4 nós do Zookeeper da mesma tolerância a desastres; pode-se descobrir o mesmo que a tolerância a desastres de 5 e 6 nós do Zookeeper, 6 e 7 nós do Zookeeper, etc. são os mesmos, Ou seja, a tolerância a desastres de 2n e 2n-1 é a mesma; portanto, para ser mais eficiente, por que não adicionar esse tratador desnecessário. Portanto, com base no exposto, pode-se concluir:Da perspectiva da economia de recursos, é melhor implantar um número ímpar de nós no cluster do Zookeeper

<br /



Por que mais da metade das máquinas no cluster do Zookeeper precisam funcionar normalmente e o cluster inteiro está disponível para o mundo externo

Mas então podemos ter novas perguntas: por que o cluster do Zookeeper tem esse recurso?Desde que mais da metade das máquinas no cluster esteja funcionando corretamente, todo o cluster estará disponível para o mundo externo. Esse recurso é realmente muito fácil de entender, porque no algoritmo Paxos e no ZAB, quando votamos nas eleições, se a maioria obedece à minoria, se você deseja aprovar uma proposta, deve obter o consentimento da maioria dos nós; portanto, se o cluster Mais da metade das máquinas deve sobreviver antes de serem eleitas pela votação.

( Nota: no algoritmo ZAB, não é simples comparar o ZXID primeiro, depois comparar o myid e eleger diretamente um novo líder. Após a comparação, cada nó comparará os resultados, votará novamente e seguirá a maioria. Princípio da minoria).




O papel de mais da metade do mecanismo

Entenda as razões acima, podemos fazer perguntas novamente, por que o algoritmo Paxos e o ZAB exigem mais da metade do mecanismo? Porque mais de metade do mecanismo pode resolver nossa teoria BASE --CAP ea teoria de sistemas distribuídos para trazer problemas muito comuns de sistemas distribuídos, tais como: 通信异常,, 网络分区, 三态, 节点故障aqui vamos dar uma olhada se o mecanismo de rede de evitar em mais da metade Divisão e problema de cérebro dividido.


Primeiro, vamos analisar mais detalhadamente o problema do cérebro dividido.Agora, se houver 5 máquinas implantadas em um cluster do Zookeeper, mas elas estiverem distribuídas nos dois locais A e B, dos quais 3 na área A e 2 na área B, como mostrado abaixo:
Insira a descrição da imagem aqui

No momento, ocorreu um problema de rede repentinamente e a área AB do cluster do Zookeeper não pode se comunicar devido a problemas de rede, mas as áreas podem se comunicar.


Agora, suponha que não haja limite de mais da metade do mecanismo , porque existe um nó Leader na área A, não há impacto, mas há um problema na área B e agora ele não consegue se comunicar com a área A, então agora a área B realizará a eleição do Leader, pois pressupõe-se que não há Mais da metade das restrições do mecanismo, para que a eleição possa ser bem-sucedida, da seguinte maneira:
Insira a descrição da imagem aqui

Isso é equivalente ao agrupamento original, que foi dividido em dois agrupamentos e apareceram dois líderes, o chamado fenômeno de "divisão do cérebro". De fato, também pode ser observado nessa situação que um cluster que originalmente fornecia serviços externamente agora se tornou dois clusters que prestam serviços externamente ao mesmo tempo.


Supondo que a rede tenha se recuperado repentinamente e as áreas AB possam se comunicar novamente, os problemas surgirão neste momento.Os dois clusters acabaram de fornecer serviços externos, como mesclar dados, como resolver conflitos de dados e assim por diante.Um dos pré-requisitos quando o cenário acima ocorre é que não mais da metade do mecanismo é considerada; portanto, o problema do cérebro dividido não ocorrerá facilmente no cluster Zookeeper, porque a metade do mecanismo é o motivo.


Como existe mais da metade do mecanismo, é impossível reeleger um novo líder na área B, e a área B não fornecerá serviços para o exterior. Após a restauração da rede, a área B sincronizará os dados da área A para garantir sua consistência.


De fato, mais da metade do mecanismo pode não apenas evitar o problema do cérebro dividido, como também pode nos ajudar a eleger rapidamente, porque mais da metade do mecanismo, em comparação com 2PC / 3PC, não precisamos esperar que todos os nós votem no mesmo nó para eleger um Líder, isso é mais rápido, por isso é chamado de algoritmo de eleição rápida de líder .




Portanto, a razão pela qual nossos nós de cluster do Zookeeper são implantados em números ímpares é o acima? De fato, não é apenas a perspectiva acima mencionada de economizar recursos, mas também tem o objetivo de,A implantação de números ímpares pode melhorar a tolerância a desastres dos serviços do ZookeeperComo mencionado acima, se houver um problema de rede, sempre haverá uma das áreas A e B que pode fornecer serviços para o exterior. Devido à implantação de números ímpares, independentemente da divisão das áreas A e B, um líder (ou o líder original) pode ser eleito para gerenciar o serviço.


No entanto, se um número par de unidades for implantado, a situação nas áreas A e B é a seguinte: Devido ao mecanismo acima da metade, é impossível fornecer serviços de fora, para que todo o cluster do Zookeeper entre em colapso.
Insira a descrição da imagem aqui

286 artigos originais publicados · Gostei12 · Visitantes com mais de 10.000

Acho que você gosta

Origin blog.csdn.net/newbie0107/article/details/105024891
Recomendado
Clasificación