![HCL Commerce Version 9.1.10.0 or later](../../base/images/91100plus.png)
Uso de réplicas de Redis
Con el clúster de Redis, los nodos maestros pueden estar respaldados por réplicas (uno o varios). Las réplicas se utilizan para la migración tras error y la escalabilidad:
Aunque otras topologías admiten el uso de réplicas, este documento se escribe teniendo en cuenta los clústeres.
Escenarios de migración tras error
Cuando el clúster de Redis detecta que un nodo maestro está inactivo, inicia la migración tras error a una de las réplicas del maestro. Las réplicas utilizan el proceso de replicación para duplicar actualizaciones del nodo maestro a medida que suceden.
En Kubernetes, cuando el pod anteriormente bloqueado se recupera y vuelve a unirse al clúster, cambiará a un rol de réplica del maestro que atiende actualmente las ranuras (que solía ser su réplica).
Si no se utilizan réplicas, Kubernetes seguirá detectando (utilizando sondas) y reiniciando los pods que no respondan. Las ranuras servidas por el maestro afectado no estarán disponibles temporalmente. Dependiendo de la duración de la interrupción, HCL Cachelos interruptores de circuito se activarán. El nodo Redis puede tardar un par de minutos en estar disponible de nuevo. Este tiempo se amplía cuando se utiliza la persistencia, ya que Redis necesita volver a cargar la memoria caché al iniciarse y el servicio no está disponible hasta que la memoria caché se haya terminado de cargar.
Escenarios de escalabilidad
Además de su rol para la migración tras error, las réplicas pueden aumentar la escalabilidad mediante el manejo GET
/la lectura de operaciones. Esto libera recursos en el nodo maestro y permite un uso más eficiente de los recursos. El cliente de Redis HCL Cache se puede configurar para dirigir operaciones de lectura a réplicas utilizando la configuración readMode .
Cuando se utilizan réplicas para operaciones de lectura, debe tenerse en cuenta lo siguiente:
- El proceso de réplica introduce un retardo. Si se produce una operación de lectura inmediatamente después de una escritura, es posible que la lectura devuelva datos obsoletos o que no haya datos. Esto podría introducir problemas funcionales para determinados escenarios de memoria caché y personalizaciones. HCL Cache incluye varias configuraciones que controlan si las lecturas se dirigen a maestros o réplicas, y tiempos de espera para que se completen las réplicas.
- Si se utilizan réplicas para lecturas, los servidores maestro y de réplica deben estar disponibles para obtener un rendimiento óptimo: Una réplica no disponible puede generar tiempos de espera WAIT excedidos de mandatos durante las operaciones
PUT
(syncReplicas, consulte más abajo) y operaciones de lectura fallidas (GET
) ejecutadas en las réplicas. Cuando se reinicia el maestro recuperado, se vuelve a configurar una réplica e inicia un nuevo proceso de sincronización. Si se requiere una sincronización completa, es posible que el servidor de réplicas no esté disponible durante algún tiempo mientras se replica la base de datos. El sistema puede tardar más tiempo en recuperarse cuando las operaciones de lectura se descargan en réplicas.
Configuraciones
Las réplicas y HCL Cache pueden requerir cambios de configuración en Redis, el cliente de Redis o HCL Cache:
- Configuraciones de Redis
-
cluster-replica-validity-factor
: xxxxxxxrepl-diskless-sync
client-output-buffer-limit
- Configuración de cliente Redis
- HCL Cache se puede configurar para emitir operaciones de lectura (
GET
) a servidores de réplica con el valor readMode .
- HCL Cache configuraciones
- HCL Cache incluye varias configuraciones avanzadas de nivel de memoria caché para controlar el comportamiento de las operaciones
PUT
cuando se utilizan réplicas. Estos valores son más relevantes cuando readMode: Se utiliza SLAVE.cacheConfigs: cacheName: remoteConfig: forceReadFromMaster: [TRUE|false] syncReplicas: [NULL| <number_of_replicas> OR all : timeout_ms] limitSyncReplicasToNumberAvailable: [TRUE|false]
- forceReadFromMaster
- Cuando readMode se establece en SLAVE o MASTER_SLAVE, la configuración
forceReadFromMaster
garantiza que las escrituras (PUT
) para esta memoria caché se envíen al servidor maestro.