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

  1. Crear un fitxer de configuració per a Sentinel:

    sentinel.conf
    
  2. 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 anomenat mymaster que s'executa a 127.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:

redis-sentinel /path/to/sentinel.conf

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:

  1. Detecció: Sentinel detecta que el mestre està caigut.
  2. Elecció: Els Sentinels es posen d'acord sobre quin esclau promoure a mestre.
  3. Promoció: El nou mestre és promogut.
  4. 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

  1. Configura tres instàncies de Sentinel en tres màquines diferents.
  2. Configura un mestre i dos esclaus.
  3. Simula una fallada del mestre i observa com Sentinel gestiona el failover.

Solució

  1. 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
    
  2. Inicia les instàncies de Sentinel:

    redis-sentinel /path/to/sentinel.conf
    
  3. 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.

© Copyright 2024. Tots els drets reservats