Redis Sentinel és una solució integrada en Redis per a la gestió de la alta disponibilitat. Sentinel proporciona monitorització, notificació i failover automàtic per a les instàncies de Redis, assegurant que el sistema pugui continuar funcionant fins i tot en cas de fallada d'un node mestre.
Objectius d'Aprenentatge
En aquesta secció, aprendràs:
- Què és Redis Sentinel i per què és important.
- Com configurar i utilitzar Redis Sentinel.
- Com Redis Sentinel gestiona el failover automàtic.
- Bones pràctiques per a la configuració de Redis Sentinel.
Què és Redis Sentinel?
Redis Sentinel és una eina que proporciona les següents funcionalitats:
- Monitorització: Sentinel verifica constantment si els teus mestres i esclaus de Redis estan funcionant com s'espera.
- Notificació: Sentinel pot notificar als administradors o a altres aplicacions sobre canvis en l'estat dels nodes Redis.
- Failover Automàtic: Si un mestre deixa de funcionar, Sentinel pot promoure un dels esclaus a mestre, assegurant la continuïtat del servei.
- Configuració de Clients: Sentinel pot proporcionar als clients la informació necessària per connectar-se al nou mestre després d'un failover.
Configuració de Redis Sentinel
Instal·lació
Redis Sentinel ve inclòs amb Redis, així que no cal instal·lar res addicional. Només cal configurar-lo.
Configuració Bàsica
-
Crear un fitxer de configuració per a Sentinel:
sentinel.conf
-
Configurar el fitxer
sentinel.conf
:port 26379 dir /tmp sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1
port 26379
: El port en què Sentinel escoltarà.dir /tmp
: El directori on Sentinel emmagatzemarà els seus fitxers.sentinel monitor mymaster 127.0.0.1 6379 2
: Defineix un mestre anomenatmymaster
que s'executa a127.0.0.1:6379
i requereix almenys 2 Sentinels per acordar que el mestre està caigut.sentinel down-after-milliseconds mymaster 5000
: El mestre es considera caigut si no respon en 5000 mil·lisegons.sentinel failover-timeout mymaster 60000
: Temps màxim per completar un failover.sentinel parallel-syncs mymaster 1
: Nombre d'esclaus que poden sincronitzar-se amb el nou mestre en paral·lel durant un failover.
Iniciar Redis Sentinel
Per iniciar Sentinel, utilitza la següent comanda:
Monitorització i Notificació
Sentinel pot enviar notificacions a través de diferents canals com correu electrònic, Slack, etc. Això es configura en el fitxer sentinel.conf
utilitzant directives com sentinel notification-script
i sentinel client-reconfig-script
.
Failover Automàtic
Quan Sentinel detecta que el mestre no està disponible, segueix aquests passos:
- Detecció: Sentinel detecta que el mestre està caigut.
- Elecció: Els Sentinels es posen d'acord sobre quin esclau promoure a mestre.
- Promoció: El nou mestre és promogut.
- Reconfiguració: Els altres esclaus són reconfigurats per sincronitzar-se amb el nou mestre.
Exemple de Failover
Suposem que tenim un mestre mymaster
i dos esclaus. Si el mestre cau, Sentinel promourà un dels esclaus a mestre i reconfigurarà l'altre esclau per sincronitzar-se amb el nou mestre.
Bones Pràctiques
- Redundància: Utilitza almenys tres instàncies de Sentinel per evitar problemes de quòrum.
- Monitorització: Configura notificacions per estar informat sobre l'estat del sistema.
- Proves Regulars: Realitza proves de failover regularment per assegurar-te que el sistema funciona correctament.
- Configuració Adequada: Ajusta els paràmetres de configuració segons les necessitats del teu entorn.
Exercici Pràctic
Configura un Sistema Redis Sentinel
- Configura tres instàncies de Sentinel en tres màquines diferents.
- Configura un mestre i dos esclaus.
- Simula una fallada del mestre i observa com Sentinel gestiona el failover.
Solució
-
Configura els fitxers
sentinel.conf
en cada màquina:port 26379 dir /tmp sentinel monitor mymaster 192.168.1.100 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1
-
Inicia les instàncies de Sentinel:
redis-sentinel /path/to/sentinel.conf
-
Simula la fallada del mestre:
- Atura el mestre.
- Observa els logs de Sentinel per veure el procés de failover.
Conclusió
Redis Sentinel és una eina poderosa per assegurar la alta disponibilitat en entorns Redis. Amb la configuració adequada i les pràctiques recomanades, pots garantir que el teu sistema Redis sigui resistent a fallades i capaç de mantenir la continuïtat del servei.
Curs de Redis
Mòdul 1: Introducció a Redis
Mòdul 2: Estructures de Dades de Redis
Mòdul 3: Comandes i Operacions de Redis
Mòdul 4: Persistència de Redis
- Instantànies (RDB)
- Fitxers Només de Afegeix (AOF)
- Configuració de la Persistència
- Còpia de Seguretat i Restauració
Mòdul 5: Seguretat de Redis
Mòdul 6: Optimització del Rendiment de Redis
Mòdul 7: Clúster i Alta Disponibilitat de Redis
Mòdul 8: Mòduls i Extensions de Redis
- Introducció als Mòduls de Redis
- Mòduls Populars de Redis
- Creant Mòduls Personalitzats
- Utilitzant Redis amb Altres Tecnologies