Redis Sentinel es una herramienta de alta disponibilidad para Redis que proporciona monitoreo, notificación y conmutación por error automática. Sentinel permite que un clúster de Redis sea más robusto y tolerante a fallos, asegurando que el sistema pueda seguir funcionando incluso si uno o más nodos fallan.

Objetivos de Aprendizaje

Al final de esta sección, deberías ser capaz de:

  • Comprender qué es Redis Sentinel y por qué es importante.
  • Configurar Redis Sentinel para monitorear instancias de Redis.
  • Implementar la conmutación por error automática con Sentinel.
  • Monitorear y mantener un clúster de Redis utilizando Sentinel.

¿Qué es Redis Sentinel?

Redis Sentinel es una solución integrada en Redis que proporciona las siguientes funcionalidades clave:

  1. Monitoreo: Sentinel verifica constantemente si tus instancias de Redis están funcionando como se espera.
  2. Notificación: Sentinel puede notificar a los administradores del sistema o a otras aplicaciones sobre problemas en las instancias de Redis.
  3. Conmutación por Error: Si una instancia maestra de Redis falla, Sentinel puede promover una de las réplicas a maestra.
  4. Descubrimiento de Configuración: Las aplicaciones pueden conectarse a Sentinel para descubrir la dirección del maestro actual.

Configuración Básica de Sentinel

Paso 1: Configurar las Instancias de Redis

Primero, asegúrate de tener varias instancias de Redis configuradas para la replicación. Aquí hay un ejemplo de configuración para una instancia maestra y dos réplicas.

redis-master.conf

port 6379
bind 127.0.0.1

redis-replica1.conf

port 6380
bind 127.0.0.1
replicaof 127.0.0.1 6379

redis-replica2.conf

port 6381
bind 127.0.0.1
replicaof 127.0.0.1 6379

Paso 2: Configurar Sentinel

Crea un archivo de configuración para Sentinel. Aquí hay un ejemplo básico:

sentinel.conf

port 26379
bind 127.0.0.1

# Monitorea la instancia maestra
sentinel monitor mymaster 127.0.0.1 6379 2

# Configura el tiempo de espera para considerar que el maestro está caído
sentinel down-after-milliseconds mymaster 5000

# Configura el tiempo de espera para la conmutación por error
sentinel failover-timeout mymaster 10000

# Configura cuántas réplicas deben estar de acuerdo para promover una nueva maestra
sentinel parallel-syncs mymaster 1

Paso 3: Iniciar Sentinel

Inicia Sentinel utilizando el archivo de configuración creado:

redis-sentinel sentinel.conf

Monitoreo y Conmutación por Error

Monitoreo

Sentinel monitorea las instancias de Redis configuradas y verifica su estado a intervalos regulares. Si una instancia maestra no responde dentro del tiempo configurado (down-after-milliseconds), Sentinel la marca como caída.

Conmutación por Error

Si Sentinel determina que la instancia maestra está caída, inicia el proceso de conmutación por error:

  1. Elección de una Nueva Maestra: Sentinel elige una de las réplicas para promoverla a maestra.
  2. Promoción: La réplica seleccionada se convierte en la nueva maestra.
  3. Reconfiguración de Réplicas: Las otras réplicas se reconfiguran para replicar desde la nueva maestra.

Ejemplo Práctico

Supongamos que tienes una instancia maestra y dos réplicas configuradas y funcionando. Aquí hay un ejemplo de cómo Sentinel manejaría una conmutación por error:

  1. La instancia maestra (puerto 6379) falla.
  2. Sentinel detecta la falla después de 5 segundos (down-after-milliseconds).
  3. Sentinel elige una de las réplicas (puerto 6380 o 6381) para promoverla a maestra.
  4. La réplica seleccionada se convierte en la nueva maestra.
  5. Las otras réplicas se reconfiguran para replicar desde la nueva maestra.

Ejercicio Práctico

Ejercicio 1: Configuración de Sentinel

  1. Configura tres instancias de Redis: una maestra y dos réplicas.
  2. Configura un archivo de configuración de Sentinel para monitorear la instancia maestra.
  3. Inicia Sentinel y verifica que está monitoreando las instancias correctamente.

Solución

  1. Configura las instancias de Redis como se muestra en la sección de configuración básica.
  2. Crea el archivo sentinel.conf con el contenido proporcionado.
  3. Inicia Sentinel con el comando redis-sentinel sentinel.conf.

Ejercicio 2: Simulación de Conmutación por Error

  1. Detén la instancia maestra de Redis.
  2. Observa cómo Sentinel maneja la conmutación por error.
  3. Verifica que una de las réplicas se ha convertido en la nueva maestra.

Solución

  1. Detén la instancia maestra con el comando redis-cli -p 6379 shutdown.
  2. Observa los logs de Sentinel para ver el proceso de conmutación por error.
  3. Usa redis-cli -p 6380 info replication o redis-cli -p 6381 info replication para verificar que una de las réplicas es ahora la maestra.

Conclusión

Redis Sentinel es una herramienta poderosa para garantizar la alta disponibilidad de tus instancias de Redis. Al configurar Sentinel, puedes asegurarte de que tu sistema Redis sea robusto y capaz de manejar fallos sin interrupciones significativas. En la siguiente sección, exploraremos el modo Cluster de Redis para una escalabilidad aún mayor.

© Copyright 2024. Todos los derechos reservados