Redis proporciona alta disponibilidad a través de Redis Sentinel Sistema distribuido. Centinela ayuda a monitorear Redis instancias, detectar fallas y cambiará roles automáticamente, lo que habilitará un Redis despliegue para resistir cualquier tipo de fallas.
Cuenta con monitoreo de Redis instancias (maestro y réplicas), admite la notificación de otros servicios/procesos o al administrador del sistema a través de un script, conmutación por error automática para promover una réplica a un maestro cuando el maestro deja de funcionar y proporciona configuración para que los clientes descubran el maestro actual que ofrece un servicio en particular .
Este artículo muestra cómo configurar Redis para alta disponibilidad con Redis Sentinel en CentOS 8 , incluida la configuración de centinelas, la comprobación del estado de configuración y la prueba de un Sentinel conmutación por error.
Requisito previo:
- Cómo configurar la replicación de Redis (con el modo de clúster deshabilitado) en CentOS 8:parte 1
Configuración del entorno de prueba
Master Server and Sentinel1: 10.42.0.247 Redis Replica1 and Sentinel2: 10.42.0.21 Redis Replica2 and Sentinel3: 10.42.0.34
Diagrama lógico de configuración de Redis Sentinel
Según el Redis Sentinel documentación, se necesitan al menos tres Sentinel instancias para un despliegue robusto. Teniendo en cuenta nuestra configuración anterior, si el maestro falla, Centinelas2 y Centinela3 estará de acuerdo con la falla y podrá autorizar una conmutación por error, lo que permitirá que las operaciones del cliente continúen.
Paso 1:iniciar y habilitar el servicio Redis Sentinel
Para iniciar Redis servicio centinela y habilitarlo para que se inicie automáticamente al arrancar el sistema, use el siguiente systemctl comandos Además, confirme que está funcionando comprobando su estado (haga esto en todos los nodos):
# systemctl start redis-sentinel # systemctl enable redis-sentinel # systemctl status redis-sentinel
Inicie el servicio Redis Sentinel
Paso 2:Configuración de Redis Sentinel en todos los nodos de Redis
Primero, crea una copia de seguridad del archivo original y ábrelo para editarlo.
# cp /etc/redis-sentinel.conf /etc/redis-sentinel.conf.orig # vi /etc/redis-sentinel.conf
port 26379
Configurar la interfaz y el puerto de escucha de Sentinel
#On Master Server and Sentinel1 sentinel monitor mymaster 127.0.0.1 6379 2 #On Replica1 and Sentinel2 sentinel monitor mymaster 10.42.0.247 6379 2 #On Replica1 and Sentinel3 sentinel monitor mymaster 10.42.0.247 6379 2
Establezca Redis Master en Monitor
Importante :La declaración del monitor centinela DEBE colocarse antes del auth-pass centinela declaración para evitar el error "No existe tal maestro con el nombre especificado. ” al reiniciar el servicio centinela.
sentinel auth-pass mymaster [email protected]
Establecer contraseña de autenticación maestra
La siguiente configuración significa que se considerará que el maestro falla tan pronto como no recibamos ninguna respuesta de nuestros ping dentro de los 5 segundos (1 segundo equivale a 1000 milisegundos).
sentinel down-after-milliseconds mymaster 5000
Establecer tiempo de inactividad para maestro
sentinel failover-timeout mymaster 180000
Establecer el tiempo de espera de falla
sentinel parallel-syncs mymaster 1
Establecer el número de réplicas sincronizadas en paralelo
Tenga en cuenta que los archivos de configuración en Redis Replica1 y Centinela2 y Reddis Réplica1 y Centinela2 debe ser idéntico.
# systemctl restart redis-sentinel
# firewall-cmd --zone=public --permanent --add-port=26379/tcp # firewall-cmd --reload
Por ejemplo, cuando mira al final del archivo de configuración del maestro, debería ver los centinelas conocidos y réplica conocida declaraciones como se muestra en la siguiente captura de pantalla.
Configuración generada automáticamente en maestro
Debería ser el mismo caso en replica1 y réplica2 .
Configuración generada automáticamente en Réplica1
Configuración generada automáticamente en Replica2
Tenga en cuenta que Sentinel la configuración también se reescribe/actualiza cada vez que una réplica asciende al estado maestro durante una conmutación por error y cada vez que se descubre un nuevo Sentinel en la configuración.
Paso 3:Compruebe el estado de configuración de Redis Sentinel
# redis-cli -p 26379 info sentinel
De la salida del comando como se ve en la siguiente captura de pantalla, tenemos dos réplicas/esclavos y tres centinelas.
Verifique la información de Sentinel en el maestro
# redis-cli -p 26379 sentinel master mymaster
Mostrar información detallada sobre Sentinel Master
# redis-cli -p 26379 sentinel slaves mymaster # redis-cli -p 26379 sentinel sentinels mymaster
El resultado debe ser la dirección IP y el puerto de la instancia maestra actual:
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
Obtenga la dirección del maestro por nombre en los esclavos
Paso 4:pruebe la conmutación por error de Sentinel
# redis-cli -p 6379 127.0.0.1:6379> AUTH [email protected] 127.0.0.1:6379> debug sleep 60 # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
Desde el resultado de la consulta, el nuevo maestro ahora es replica/slave2 con dirección IP 10.42.0.34 como se ve en la siguiente captura de pantalla.
Probar la conmutación por error de Redis Sentinel
Puede obtener más información en la documentación de Redis Sentinel. Pero si tiene alguna idea que compartir o alguna consulta, el siguiente formulario de comentarios es su puerta de entrada.
En la siguiente y última parte de esta serie, veremos cómo configurar un clúster de Redis en CentOS 8. Será un artículo independiente de los dos primeros.
Compartir es cuidar…Compartir en FacebookCompartir en TwitterCompartir en LinkedinCompartir en Reddit