Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Cómo maneja Redis Cluster las fallas de los nodos?


¿Cómo maneja Redis Cluster las fallas de los nodos?


Así es como Redis Cluster maneja las fallas de los nodos:

Conmutación por error automática

Cuando falla un nodo maestro de Redis Cluster, el clúster promoverá automáticamente uno de los nodos de réplica de ese maestro para que se convierta en el nuevo maestro. Este proceso de conmutación por error ocurre automáticamente sin ninguna intervención manual.

Los pasos clave en el proceso de conmutación por error son:

1. Los otros nodos del clúster detectan que el nodo maestro ha fallado, ya sea a través del protocolo de chismes del clúster o al intentar conectarse al nodo.

2. Luego, el clúster realiza una elección entre los nodos de réplica de ese maestro. La réplica con los datos más actualizados se elige como nueva maestra.

3. El nodo réplica elegido asciende a convertirse en el nuevo maestro. Luego, las otras réplicas se reconfiguran para replicarse desde el nuevo maestro.

4. Los clientes son redirigidos al nuevo nodo maestro mediante la respuesta de error "MOVED", que contiene la nueva asignación de ranura a nodo.

Cobertura de espacios

Para permanecer disponible durante fallas de los nodos, Redis Cluster requiere que la mayoría de los nodos maestros estén disponibles y puedan comunicarse. Esto se conoce como mantener la "cobertura de franjas horarias".

Cada nodo maestro del clúster es responsable de un subconjunto de las 16.384 ranuras hash. Mientras la mayoría de los maestros estén disponibles y puedan atender sus espacios asignados, el clúster puede continuar funcionando.

Si demasiados nodos maestros fallan de modo que los maestros restantes no puedan cubrir todo el rango de ranuras hash, el clúster dejará de estar disponible hasta que los nodos fallidos se recuperen o sean reemplazados.

Promoción de réplicas

Redis Cluster se basa en nodos de réplica para proporcionar alta disponibilidad. Cuando un maestro falla, uno de sus nodos de réplica asciende automáticamente para convertirse en el nuevo maestro.

La réplica con los datos más actualizados se elige como nueva maestra. Esto garantiza que se mantenga la coherencia de los datos durante el proceso de conmutación por error.

Manejo del cerebro dividido

Redis Cluster utiliza un enfoque basado en quórum para manejar particiones de red y evitar escenarios de "cerebro dividido" en los que el clúster se divide en varios clústeres independientes.

Si la mayoría de los maestros no están disponibles, los nodos restantes rechazarán las solicitudes de los clientes hasta que se resuelva la partición. Esto garantiza que se preserve la coherencia de los datos.

Al aprovechar estos mecanismos automáticos de conmutación por error y basados ​​en quórum, Redis Cluster puede proporcionar alta disponibilidad y resiliencia frente a fallas de nodos y particiones de red.

Citas:
[1] https://yifan-online.com/en/km/article/detail/16750
[2] https://stackoverflow.com/questions/63878562/two-failure-support-in-3-node-redis-cluster
[3] https://redis.io/docs/latest/operate/oss_and_stack/management/scaling/
[4] https://redis.io/docs/latest/commands/cluster-nodes/
[5] https://github.com/lettuce-io/lettuce-core/issues/2318