Configuración de la replicación geográfica activa para las instancias de Azure Managed Redis (versión preliminar)
En este artículo, aprenderá a configurar una instancia de caché con replicación geográfica activa mediante Azure Portal.
La replicación geográfica activa agrupa hasta cinco instancias de Azure Managed Redis (versión preliminar) en una única caché que se extiende por todas las regiones de Azure. Ambas instancias actúan como las principales cachés locales. Una aplicación decide qué instancias se van a utilizar para las solicitudes de lectura y escritura.
Nota
La transferencia de datos entre regiones de Azure se cobrará según las tarifas de ancho de banda estándar.
Cómo funciona la replicación geográfica activa
La replicación geográfica activa utiliza tipos de datos replicados sin conflictos (CRDT) para distribuir sin problemas datos entre instancias de Redis que pueden estar distribuidas por continentes. Estas instancias están conectadas en una configuración activo-activo, donde las escrituras en una instancia se reflejan automáticamente en las otras instancias en el mismo grupo de replicación geográfica. Esta replicación bidireccional de datos difiere de los enfoques unidireccionales de replicación activo-pasivo, en los que los datos se replican del primario a una réplica geográfica, pero no en la otra dirección. Se trata de una potente herramienta que suele utilizarse de varias formas:
Proporcionar latencia local distribuyendo el almacenamiento en caché más cerca de los usuarios.. Al utilizar una red de instancias de Redis con replicación geográfica activa, puede colocar cachés geográficamente más cerca de los usuarios de cada región, lo que reduce la latencia y mejora el rendimiento de la aplicación.
Sincronización de aplicaciones globales. Dado que las cachés con replicación geográfica aparecen como una única instancia de Redis, puede distribuir datos globalmente sin necesidad de segmentar los datos por regiones. Por ejemplo, puede utilizar un único conjunto ordenado Redis para proporcionar una tabla de clasificación de juegos para todos los usuarios del mundo, en lugar de proporcionar una tabla de clasificación independiente para cada región geográfica.
Reducción del tiempo de inactividad y del riesgo de interrupciones regionales. Dado que cada instancia de Redis del grupo de replicación geográfica se actualiza constantemente con los datos más recientes de las otras instancias del grupo, los datos se conservan correctamente durante una interrupción regional. Las aplicaciones pueden cambiar temporalmente para usar una de las otras instancias del grupo y cuando la región vuelve a estar en línea, la instancia de Redis se vuelve a cargar automáticamente con datos de las otras cachés con replicación geográfica.
Para conocer con más detalle el funcionamiento de la replicación geográfica activa, consulte Distribución geográfica activa (basada en CRDTS)
Ámbito de disponibilidad
Nivel | Memoria optimizada, equilibrada, optimizado para proceso | Optimizado para flash |
---|---|---|
Disponible | Sí (excepto B0 y B1) | Sí |
Importante
Las SKU B0 y B1 equilibradas no admiten la replicación geográfica activa.
Requisitos previos de replicación geográfica activa
Hay algunas restricciones al usar la replicación geográfica activa:
La replicación geográfica activa solo se admite cuando Azure Managed Redis está en una configuración de alta disponibilidad, es decir, se usa la replicación.
Solo se admiten los módulos RediSearch y RedisJSON
En el nivel Optimizado para Flash, solo se puede utilizar la directiva de desalojo No desalojo. Todas las directivas de desalojo son compatibles con los demás niveles.
No se admite la persistencia de datos porque la replicación geográfica activa proporciona una experiencia superior.
Todas las memorias caché de un grupo de replicación geográfica deben tener la misma configuración. Por ejemplo, todas las memorias caché deben tener la misma SKU, capacidad, directiva de expulsión, directiva de agrupación en clústeres, módulos y configuración de TLS.
Si se escala una instancia de un grupo de replicación geográfica, las demás instancias de ese grupo se deben escalar al mismo tamaño antes de que pueda producirse cualquier otro escalado. Consulte Escalado de instancias en un grupo de replicación geográfica para obtener más información.
No puedes usar
FLUSHALL
yFLUSHDB
los comandos Redis al usar la replicación geográfica activa. La prohibición de los comandos impide la eliminación no deseada de datos. En su lugar, utilice la operación de descarga.
Creación de un grupo de replicación geográfica activa o unión con él
Al crear un nuevo recurso Azure Managed Redis, seleccione la pestaña Avanzado. Rellene la primera parte del formulario, incluida la directiva de agrupación. Para obtener más información sobre la elección de la Directiva de agrupación en clústeres, consulte Agrupación en clústeres en Azure Managed Redis.
Seleccione Configurar para configurar la replicación geográfica activa.
Cree un nuevo grupo de replicación para una primera instancia de caché. O bien, seleccione uno existente de la lista.
Seleccione Configurar para finalizar.
Espere a que el área de trabajo se cree correctamente. Cuando haya finalizado, verá el conjunto configurado para la replicación geográfica activa. Repita los pasos anteriores para cada instancia de caché en el grupo de replicación geográfica.
Agregar una instancia existente a un grupo de replicación geográfica activa
Para agregar una instancia de caché existente a un grupo de replicación geográfica activa, puede utilizar la API REST para realizar una acción de vinculación forzada.
Todos los datos de la instancia de caché que se vinculan se descartan. La instancia también no está disponible temporalmente durante varios minutos mientras se une al grupo de replicación geográfica. El portal y la compatibilidad con la CLI aún no están disponibles para esta característica.
Eliminación de un grupo de replicación geográfica activa
Para quitar una instancia de caché de un grupo de replicación geográfica activa, solo tiene que eliminar la instancia. Las instancias restantes luego se reconfiguran automáticamente.
Desvinculación forzada si se produce una interrupción de la región
La replicación geográfica activa es una potente función que aumenta drásticamente la disponibilidad cuando se utiliza Azure Managed Redis. Sin embargo, debe realizar los pasos necesarios para preparar las memorias caché si hay una interrupción regional.
Por ejemplo, considere estos consejos:
Identifique de antemano a qué otra memoria caché del grupo de replicación geográfica se va a cambiar si una región deja de funcionar.
Asegúrese de que los firewalls estén establecidos para que las aplicaciones y los clientes puedan acceder a la memoria caché de reserva identificada.
Cada caché del grupo de replicación geográfica tiene su propia clave de acceso. Determine cómo cambia la aplicación a claves de acceso distintas al dirigirse a una caché de reserva.
Si una caché del grupo de replicación geográfica deja de funcionar, comienza a producirse una acumulación de metadatos en todas las memorias caché del grupo de replicación geográfica. Los metadatos no se pueden descartar hasta que las escrituras se puedan volver a sincronizar con todas las caché. Puede evitar la acumulación de metadatos mediante la desvinculación forzada de la caché que está inactiva. Considere la posibilidad de supervisar la memoria disponible en la caché y desvincular si hay presión en la memoria, especialmente para cargas de trabajo con mucha escritura.
También es posible usar un patrón de disyuntor. Use el patrón para redirigir automáticamente el tráfico fuera de una caché que experimenta una interrupción de la región y hacia una caché de reserva en el mismo grupo de replicación geográfica. Use servicios de Azure como Azure Traffic Manager o Azure Load Balancer para habilitar el redireccionamiento.
En caso de que una de las cachés del grupo de replicación no esté disponible debido a una interrupción de la región, puede quitar de manera forzada la caché no disponible del grupo de replicación.
Debe quitar la caché no disponible porque las memorias caché restantes del grupo de replicación comienzan a almacenar los metadatos que no se han compartido en la memoria caché no disponible. Cuando esto sucede, es posible que las cachés disponibles en el grupo de replicación se queden sin memoria.
Vaya a Azure Portal y seleccione una de las cachés del grupo de replicación que todavía esté disponible.
Seleccione Replicación geográfica activa en el menú "Recurso" de la izquierda para ver la configuración en el panel de trabajo.
Active la casilla a fin de seleccionar la caché para la que necesita forzar la desvinculación.
Seleccione Force unlink (Forzar desvinculación) y, a continuación, Aceptar para confirmar.
Una vez restaurada la disponibilidad de la región afectada, debe eliminar la caché afectada y volver a crearla para agregarla de nuevo al grupo de replicación.
Configuración de la replicación geográfica activa mediante la CLI de Azure o PowerShell
Azure CLI
Usa la CLI de Azure para crear una nueva memoria caché y un grupo de replicación geográfica, o para agregar una memoria caché nueva a un grupo de replicación geográfica existente. Para obtener más información, consulte az redisenterprise create.
Crear una nueva instancia de Azure Managed Redis en un nuevo grupo de replicación geográfica utilizando la CLI de Azure
Este ejemplo crea una nueva instancia Azure Managed Redis Balanced B10 denominada Cache1 en la región Este de EE.UU. A continuación, la caché se agrega a un nuevo grupo de replicación geográfica activa denominado replicationGroup:
az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"
Para configurar correctamente la replicación geográfica activa, se debe agregar el id. de la instancia de caché que se va a crear con el parámetro --linked-databases
. El identificador tiene el formato:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Crear una nueva instancia de Azure Managed Redis en un grupo de replicación geográfica existente utilizando la CLI de Azure
Este ejemplo crea una nueva instancia de caché B10 equilibrada denominada Cache2 en la región Oeste de Estados Unidos. A continuación, el script agrega la memoria caché al grupo de replicación geográfica activa replicationGroup
creado en un procedimiento anterior. De este modo, se vincula en una configuración activa-activa con Cache1.
az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Balanced_B10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"
Como antes, debe indicar Cache1 y Cache2 mediante el parámetro --linked-databases
.
Azure PowerShell
Use Azure PowerShell para crear una nueva caché y un grupo de replicación geográfica, o para agregar una nueva caché a un grupo de replicación geográfica existente. Para obtener más información, consulte New-AzRedisEnterpriseCache.
Crear una nueva instancia de Azure Managed Redis en un nuevo grupo de replicación geográfica mediante PowerShell
Este ejemplo crea una nueva instancia de caché Azure Managed Redis Balanced B10 denominada Cache1 en la región Este de EE. UU. A continuación, la caché se agrega a un nuevo grupo de replicación geográfica activa denominado replicationGroup:
New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'
Para configurar correctamente la replicación geográfica activa, se debe agregar el id. de la instancia de caché que se va a crear con el parámetro -LinkedDatabase
. El identificador tiene el formato:
/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default
Crear una nueva instancia de Azure Managed Redis en un grupo de replicación geográfica existente mediante PowerShell
Este ejemplo crea una nueva instancia de caché B10 equilibrada denominada Cache2 en la región Oeste de Estados Unidos. A continuación, el script agrega la memoria caché al grupo de replicación geográfica activa, replicationGroup creado en el procedimiento anterior. El resultado es que las dos cachés, Cache1 y Cache2, están vinculadas en una configuración activo-activo.
New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Balanced_B10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'
Como antes, debe indicar Cache1 y Cache2 mediante el parámetro -LinkedDatabase
.
Escalado de instancias en un grupo de replicación geográfica
Es posible escalar instancias configuradas para usar la replicación geográfica activa. Sin embargo, un grupo de replicación geográfica con una combinación de diferentes tamaños de caché puede presentar problemas. Para evitar que se produzcan estos problemas, todas las cachés de un grupo de replicación geográfica deben tener el mismo tamaño y nivel de rendimiento.
Dado que el escalado requiere cambiar el tamaño o el nivel y es difícil escalar simultáneamente todas las instancias del grupo de replicación geográfica, Azure Managed Redis tiene un mecanismo de bloqueo. Si escala una instancia de un grupo de replicación geográfica, la máquina virtual subyacente se escala, pero la memoria disponible se limita al tamaño original hasta que también se escalan verticalmente las demás instancias. Y cualquier otra operación de escalado de las instancias restantes se bloquea hasta que coincidan con la misma configuración que la primera memoria caché que se va a escalar.
Ejemplo de escalado
Por ejemplo, puede tener tres instancias en el grupo de replicación geográfica, todas las instancias de M10 optimizadas para memoria:
Nombre de la instancia | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Tipo | Optimización de memoria M10 | Optimización de memoria M10 | Optimización de memoria M10 |
Supongamos que desea escalar cada instancia de este grupo de replicación geográfica a una instancia X20 optimizado para proceso. Primero se escalaría uno de los cachés hasta un X20:
Nombre de la instancia | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Tipo | X20 optimizado para proceso | Optimización de memoria M10 | Optimización de memoria M10 |
En este punto, las instancias Redis01
y Redis02
solo pueden escalar una instancia X20 Optimizado para proceso. Todas las demás operaciones de escalado están bloqueadas.
Nota:
La instancia de Redis00
no está bloqueada para escalar aún más en este momento. Pero se bloquea una vez Redis01
o Redis02
se escala para que sea un X20 optimizado para proceso.
Una vez que cada instancia se escala al mismo nivel y tamaño, se quitan todos los bloqueos de escalado:
Nombre de la instancia | Redis00 | Redis01 | Redis02 |
---|---|---|---|
Tipo | X20 optimizado para proceso | X20 optimizado para proceso | X20 optimizado para proceso |
Operación de vaciado
Debido a la posibilidad de pérdida involuntaria de datos, no puede usar FLUSHALL
y FLUSHDB
comandos Redis con ninguna instancia de caché que resida en un grupo de replicación geográfica. En su lugar, usa el botón Vaciar caché situado en la parte superior del panel de trabajo Replicación geográfica activa.
Métrica de replicación geográfica
La métrica de Replicación geográfica correcta en Azure Managed Redis ayuda a supervisar el estado de los clústeres con replicación geográfica. Esta métrica se usa para supervisar el estado de sincronización entre las réplicas geográficas.
Para supervisar la métrica de Replicación geográfica correcta en Azure Portal:
Abra Azure Portal y seleccione la instancia de Azure Managed Redis.
En el menú Recurso, seleccione Métricas en la sección Supervisión.
Seleccione Add Metric (Agregar métrica) y seleccione la métrica Geo Replication Healthy (Replicación geográfica correcta).
Si es necesario, aplique filtros para réplicas geográficas específicas.
Puede configurar una alerta para notificarle si la métrica Replicación geográfica correcta emite un valor incorrecto (0) continuamente durante más de 60 minutos.
Seleccione Nueva regla de alertas.
Defina la condición que se va a desencadenar si el valor de la métrica es 0 durante al menos 60 minutos, el tiempo recomendado.
Agregue grupos de acciones para notificaciones, por ejemplo: correo electrónico, SMS y otros.
Guarde la alerta.
Para obtener más información sobre cómo configurar alertas para la caché de Redis Enterprise, consulte la sección de alertas de Supervisión de Redis Cache.
Importante
Esta métrica podría mostrarse temporalmente como incorrecta debido a operaciones rutinarias, como eventos de mantenimiento o escalado, iniciados por Azure o el cliente. Para evitar falsas alarmas, se recomienda configurar una ventana de observación de 60 minutos, donde la métrica sigue siendo incorrecta según el tiempo adecuado para generar una alerta, ya que podría indicar un problema que requiere intervención.
Problemas comunes del lado cliente que pueden causar problemas de sincronización entre réplicas geográficas
Uso de hashtags personalizados: el uso de hashtags personalizados en Redis puede provocar una distribución desigual de los datos entre particiones, lo que podría provocar problemas de rendimiento y problemas de sincronización en réplicas geográficas, por lo tanto, evitar el uso de hashtags personalizados a menos que la base de datos necesite realizar varias operaciones clave.
Tamaño de clave grande: las claves grandes pueden crear problemas de sincronización entre réplicas geográficas. Para mantener un rendimiento suave y una replicación confiable, se recomienda mantener los tamaños de clave inferiores a 500MB al usar la replicación geográfica. Si el tamaño de clave individual se acerca a 2GB, la memoria caché se enfrenta a problemas de mantenimiento de replicación geográfica.
Vaciar cachés usando CLI de Azure o PowerShell
La CLI de Azure y PowerShell también se pueden usar para desencadenar una operación de vaciado. Para saber más sobre el uso de la CLI de Azure, consulte vaciado de base de datos az redisenterprise. Para saber más sobre el uso de PowerShell, consulte Invoke-AzRedisEnterpriseCacheDatabaseFlush.
Importante
Ten cuidado al usar la característica Vaciar cachés. Al seleccionar el botón se quitan todos los datos de la caché actual y de TODAS las cachés vinculadas del grupo de replicación geográfica.
Administra el acceso a la característica mediante el control de acceso basado en rol de Azure. Solo se debe conceder acceso a los usuarios autorizados para vaciar todas las memorias caché.