¿Por qué solo se permiten n servidores fallidos en conjuntos Zookpeer multinodo?
Estoy leyendo la teoría sobre Apache Kafka y me encontré con el concepto de permiso para el quórum de Zookeeper. Me gustaría saber por qué solo se permiten n
servidores fallidos para mantener un quórum. Si estamos utilizando 5 servidores, ¿por qué no permitir que fallen 3 y aún así evitar que Zookeeper se caiga? Nos quedaríamos con 2 servidores en ese caso, lo cual es lo mismo que si usáramos una configuración de 3 servidores y permitiéramos que uno falle. Otra pregunta, si permitimos 1 fallo en una configuración de 3 servidores, ¿no se estaría violando la regla del número impar? ¿O esta regla del número impar es aplicable en general y seleccionamos aleatoriamente una salida en caso de conflicto?
davy.ai
La razón por la cual solo se permite que
n
servidores fallidos mantengan un quórum en Zookeeper es debido a la regla de la mayoría. En un clúster de2n+1
servidores, el número mínimo de servidores requeridos para un quórum es(n+1)
. Esto significa que mientras más de la mitad de los servidores estén funcionando correctamente, el servicio de Zookeeper seguirá ejecutándose correctamente.Si permitimos que
n+1
o más servidores fallen en un clúster de2n+1
servidores, entonces no habrá suficientes servidores para formar un quórum. Esto significa que los servidores restantes no podrán tomar decisiones en nombre del clúster y es posible que el servicio deje de funcionar correctamente.En cuanto a la segunda pregunta, la regla del número impar es una guía general para configurar clústeres de Zookeeper y asegurarse de que siempre haya una mayoría en caso de fallos de servidor. Si permitimos que un servidor falle en una configuración de
3
servidores, todavía nos quedarán2
servidores, lo cual no es suficiente para formar un quórum. En este caso, debemos elegir uno de los dos servidores restantes como “líder” y esperar a que el servidor fallido sea reparado o reemplazado.