En esta página, se describe la alta disponibilidad en instancias de Memorystore para Redis en el nivel Estándar.
Descripción general
El nivel Estándar protege una instancia de Redis de las fallas comunes mediante la replicación de datos a una o más réplicas y la conmutación por error automática rápida a una réplica.
El nivel Estándar se aprovisiona con un nodo principal y uno o más nodos de réplica. Una instancia de nivel Estándar que tiene inhabilitado readReplicaMode
tiene una sola réplica que no es de lectura. Una instancia de nivel Estándar que tenga habilitado el readReplicaMode
tiene de una a cinco réplicas de lectura. Para determinar si readReplicaMode
está habilitado, consulta Visualiza información de las réplicas de lectura.
Memorystore para Redis proporciona alta disponibilidad mediante la replicación de un nodo de Redis principal en uno o más nodos de réplica. Los cambios realizados en los datos del nodo principal se copian en la réplica mediante el protocolo de replicación asíncrono de Redis. Debido a la naturaleza asíncrona de la replicación, una réplica puede retrasarse en comparación con el nodo principal, según la tasa de escritura en la instancia principal.
Si falla la instancia principal, la instancia realiza una conmutación por error automáticamente a una réplica. Para las instancias configuradas con más de una réplica, la instancia conmuta por error de forma automática a una réplica con el menor retraso de replicación en buen estado.
Si una instancia se configura con una sola réplica no leída, todas las conexiones de la aplicación se dirigen al extremo principal. Si una instancia se configura mediante réplicas de lectura, las aplicaciones también pueden aprovechar el extremo de lectura para distribuir consultas de lectura en todas las réplicas.
Cuándo se activa una conmutación por error
Una conmutación por error ocurre cuando falla el nodo principal de Redis. Durante una conmutación por error, el extremo principal y el de lectura redireccionan de forma automática a la réplica principal y a las réplicas nuevas. Se descartan todas las conexiones al extremo principal y también se descartan las conexiones de extremo de lectura a la réplica de lectura que se asciende.
Cómo afecta una conmutación por error a tu aplicación
Cuando el nodo principal se conmuta por error a la réplica, se descartan las conexiones existentes al extremo principal de la instancia. La instancia no estará disponible durante unos segundos mientras la nueva instancia principal se vuelve a conectar. Cuando vuelvas a conectarte, tu aplicación se redireccionará automáticamente al nuevo nodo principal mediante la misma string de conexión o dirección IP. No necesitas actualizar tu aplicación después de una conmutación por error.
Durante la conmutación por error, si hay conexiones al extremo de lectura, se descartan las conexiones a la réplica que se asciende a principal. Las conexiones a las otras réplicas se siguen entregando durante la conmutación por error. Una vez que se complete la conmutación por error y esté disponible la réplica nueva, se redireccionarán las conexiones a la réplica nueva.
Reintenta la conexión de la instancia después de la conmutación por error
Cuando ocurre una conmutación por error, se descartan todas las conexiones del extremo principal y, según la cantidad de réplicas, se finalizan algunas conexiones de lectura.
Debido a esta desconexión, tu aplicación debe ejecutar un reintento para restablecer la conexión. La lógica de reintento debe usar la retirada exponencial para asegurarse de no sobrecargar la instancia con demasiadas solicitudes de reintento. Además de incluir la lógica de reintento, debes probar cómo una conmutación por error afecta a tu aplicación mediante la prueba con una conmutación por error manual.
La mayoría de los clientes de Redis tienen capacidades de reintento integradas que debes aprovechar en caso de que se pierda la conexión debido a una conmutación por error.
En una de estas situaciones, se produce una conmutación por error:
- Escalamiento de la instancia
- Actualiza la versión de Redis de una instancia
- Inicia una conmutación por error manual
- Actualizaciones de mantenimiento
Si implementas una lógica de reintento en tu aplicación para controlar la disminución de la conexión debido a conmutaciones por error, tu instancia no debería ver un impacto significativo en el rendimiento. Por lo general, los problemas se generan cuando no tienes la lógica de reintento implementada.
Cómo visualizar el estado de alta disponibilidad
Puedes ver las métricas de alta disponibilidad para tu instancia de Redis mediante Cloud Monitoring. Para obtener información sobre las métricas que proporciona Cloud Monitoring para Memorystore para Redis, consulta Supervisa instancias de Redis y Supervisa métricas.
Para obtener más información sobre el uso de Google Cloud's operations suite con Google Cloud, consulta la documentación de Cloud Monitoring.
Para ver el estado de replicación nativo que brinda Redis, puedes emitir el comando INFO de Redis a la instancia de Memorystore para Redis.