Resumen de aprendizaje de Redis (3) Modo centinela de Redis
En el desarrollo real, no implementará solo un servidor Redis; el modo Redis Sentinel es una opción para lograr alta disponibilidad.
Este artículo presentará el patrón centinela y luego describirá cómo usarlo en un proyecto springboot.
Esto significa que al utilizar Sentinel, puede crear una implementación de Redis que pueda soportar ciertos tipos de fallas (conmutación por error) sin intervención humana.
Puede hacer esto:
Las características distribuidas de Sentinel
Redis Sentinel es un sistema distribuido donde múltiples procesos Sentinel trabajan juntos y tienen las siguientes características Ventajas:
Lo que necesita saber antes de implementar:
Lo que necesita saber antes de implementar. strong> Lo que necesita saber antes de la implementación:
Configuración básica de tres nodos
Quórum y quórum
Al configurar el modo centinela, especifique un quórum, puede entenderse como "quórum".
Supongamos que hay 3 centinelas y un quórum de 2, luego:
Descubrimiento automático de centinelas y réplicas
Los centinelas permanecen conectados con otros centinelas para realizar comprobaciones cruzadas la disponibilidad de cada uno e intercambiar mensajes.
Sin embargo, no necesita configurar una lista de otras direcciones de Sentinel en cada instancia de Sentinel que ejecute porque Sentinel utiliza la funcionalidad Pub/Sub de la instancia de Redis para descubrir otros Sentinel que monitorean el mismo maestro y las réplicas.
Del mismo modo, no es necesario configurar la ubicación de las direcciones de réplica que se conectan al servidor maestro.
Consulta mi otro artículo:
Normalmente necesitas tres nodos, cada uno con un Redis y un Sentinel.
A continuación se describirá cada nodo.
Comenzaré con tres nodos y configuraré una réplica redis maestro-esclavo, con un nodo como nodo maestro y dos nodos como réplicas.
Configurar el Nodo 1: Nodo Maestro
Aquí, usamos redis como nodo maestro y los otros dos nodos como nodos esclavos.
Inicie tres redis respectivamente.
Ejecute redis-server en la línea de comando y especifique el parámetro de ruta del archivo de configuración.
¿Cómo comprobar si la replicación maestro-esclavo está configurada correctamente?
Utilice el comando de replicación de información de la siguiente manera:
¿El esclavo está configurado en solo lectura?
A partir de Redis 2.6, la replicación está configurada en solo lectura de forma predeterminada y no requiere configuración adicional.
Por lo general, se necesitan al menos tres centinelas para monitorear redis. Podemos iniciar múltiples servicios centinela modificando el puerto.
Primer Sentinel:
El puerto predeterminado para Sentinel es 26379, que permanece sin cambios.
Segundo centinela:
Modifica el puerto centinela.
El tercer centinela:
Modifica el puerto centinela.
Iniciar los centinelas
Usa el comando redis-sentinel para iniciar los tres centinelas
Descubrimiento automático de los centinelas
Una vez que los tres Cuando se inicia Sentinel, puedes ver en el registro impreso de cada centinela que los tres centinelas han descubierto la existencia del otro.
Una vez completada la configuración, tenemos tres redis y tres centinelas, como se muestra en la siguiente figura.
Simular maestro
Presione ctrl c para detener el maestro (en 6379). Después de detenerse, puede ver en los registros que las réplicas centinela y redis primero intentan continuar conectándose al 6379 y, después de algunos intentos fallidos, comienzan a seleccionar el nuevo maestro. La captura de pantalla es la siguiente:
En este punto, la configuración está completa.
Echemos un vistazo a cómo está configurado el cliente del proyecto Springboot para acceder a Redis en modo centinela.
Soporte de Redis Sentinel
Para manejar Redis de alta disponibilidad, Spring Data Redis ya es compatible con Redis Sentinel.
También puede configurar RedisSentinelConfiguration usando PropertySource, que le permite establecer las siguientes propiedades:
Configuración de application.yml
Por ejemplo, modifiqué my application.yml El archivo es el siguiente:
Ejemplo de mi archivo de configuración: blogs.com/jaycekon/p/6237562.html
FIN