En esta página, se describe la alta disponibilidad (HA) para las instancias de Memorystore para Redis en el nivel Estándar.
Descripción general
El nivel Estándar protege las instancias de Redis de fallas comunes mediante la replicación de datos en una o más réplicas y la conmutación por error automática y rápida a una réplica.
El nivel Estándar está aprovisionado con una instancia principal y una o más réplicas. Una instancia de nivel Estándar que tiene el readReplicaMode
inhabilitado tiene una sola réplica que no es de lectura. Una instancia de nivel Estándar que tiene habilitado readReplicaMode
tiene de una a cinco réplicas de lectura. Para determinar si readReplicaMode
está habilitado, consulta Visualiza la información de la réplica de lectura.
Memorystore para Redis proporciona alta disponibilidad, ya que replica una instancia principal de Redis en una o más réplicas. Los cambios realizados en los datos de la instancia principal se copian en las réplicas mediante el protocolo de replicación asíncrono de Redis. Debido a la naturaleza asíncrona de la replicación, las réplicas pueden retrasarse con respecto a la instancia principal, según su tasa de escritura.
Si falla la instancia principal, la instancia se conmuta por error automáticamente a una réplica. En el caso de las instancias configuradas con más de una réplica, la instancia conmuta por error automáticamente a una réplica con el menor retraso de replicación que esté en buen estado.
Si una instancia está configurada con una sola réplica no de lectura, todas las conexiones de la aplicación se dirigen al extremo principal. Si una instancia se configura con réplicas de lectura, las aplicaciones también pueden aprovechar el extremo de lectura para distribuir las consultas de lectura en todas las réplicas.
Cuándo se activa una conmutación por error
Una conmutación por error se produce cuando falla la instancia principal de Redis. Durante una conmutación por error, el extremo principal y el de lectura se redireccionan de forma automática a la instancia principal y a las réplicas nuevas. Todas las conexiones al extremo principal se descartan y también se descartan las conexiones de lectura de extremo a la réplica de lectura que se promueven.
Cómo afecta una conmutación por error a tu aplicación
Cuando la instancia principal se conmuta a la réplica, se descartan las conexiones existentes al extremo principal de la instancia. La instancia no está disponible durante algunos segundos mientras la nueva instancia principal se reconecta. Cuando se vuelve a conectar, tu aplicación se redirecciona de forma automática a la nueva instancia principal mediante la misma cadena 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, las conexiones a la réplica que se asciende a la instancia principal se descartan. Las conexiones a las otras réplicas se seguirán entregando durante la conmutación por error. Una vez que se completa la conmutación por error y la réplica nueva está disponible, las conexiones se redireccionan a esta réplica.
Reintenta la conexión de la instancia después de la conmutación por error
Cuando se produce una conmutación por error, todas las conexiones del extremo principal se descartan 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 deberías 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 la lógica de reintento en tu aplicación para controlar las interrupciones de conexión debido a conmutaciones por error, la instancia no debería ver un impacto significativo en el rendimiento. Por lo general, los problemas solo surgen si no se implementa una lógica de reintento.
Cómo visualizar el estado de alta disponibilidad
Puedes ver las métricas de alta disponibilidad para tu instancia de Redis mediante Cloud Monitoring. Si quieres obtener información sobre las métricas que Cloud Monitoring proporciona para Memorystore para Redis, consulta Supervisa instancias de Redis y Supervisa métricas.
Para obtener más información, consulta la documentación de Cloud Monitoring.
Para ver el estado de replicación nativo que proporciona Redis, puedes emitir el comando INFO de Redis a la instancia de Memorystore para Redis.