Separación de lecturas/escrituras
Esta sección describe las instancias DCS principal/en standby en las que se implementa la separación de lectura/escritura en el lado del servidor o en el lado del cliente. La separación de lectura/escritura es adecuada para escenarios con alta simultaneidad de lectura y pocas solicitudes de escritura, con el objetivo de mejorar el rendimiento de la alta simultaneidad y reducir los costos de operación.
La separación de lectura/escritura del servidor y la separación de lectura/escritura del cliente solo se admiten en algunas regiones.
- Para una instancia de separación de lectura/escritura de DCS para Redis 4.0 o 5.0, la separación de lectura/escritura se implementa en el lado del servidor de forma predeterminada. Los proxy distinguen entre las peticiones de lectura y las de escritura, y reenvían las de escritura al nodo principal y las de lectura al nodo en standby. No es necesario configurar el cliente.
- Para una instancia de DCS para Redis 4.0 o 5.0 principal/en standby, la separación de lectura/escritura se implementa por defecto en el lado del cliente. La instancia proporciona un nombre de dominio de lectura/escritura y un nombre de dominio de solo lectura para recibir respectivamente solicitudes de lectura y escritura del cliente. De esta manera, se consigue la separación de lectura/escritura.
Separación de lectura/escritura del servidor
Descripción de la arquitectura:
- Servicio de endpoint de VPC
Puede configurar su instancia de DCS compatible con Redis como un servicio de endpoint de VPC y acceder a la instancia mediante la dirección de servicio de endpoint de VPC.
La dirección IP o el nombre de dominio de la instancia de separación de lectura/escritura de DCS compatible con Redis es la dirección del servicio de endpoint de VPC.
- ELB
Los balanceadores de carga se implementan en modo HA de clúster y admiten la implementación multi-AZ.
- Proxy
Se usa un clúster proxy para distinguir entre las solicitudes de lectura y las de escritura, y reenviar las solicitudes de escritura al nodo principal y las de lectura al nodo de reserva. No es necesario configurar el cliente.
- Sentinel cluster
Los Sentinel monitorean el estado del principal y de las réplicas. Si el nodo principal es defectuoso o anormal, se realiza una conmutación por error para garantizar que los servicios no se interrumpan.
- Master/standby instance
Una instancia de separación de lectura/escritura es esencialmente una instancia principal/en standby que consiste en un nodo principal y un nodo en standby. De forma predeterminada, la persistencia de datos está habilitada y los datos se sincronizan entre los dos nodos.
Los nodos principal y en standby pueden desplegarse en diferentes AZ.
Separación de lectura/escritura del cliente
Figura 2 muestra la arquitectura de una instancia principal/en standby de DCS compatible con Redis 4.0 y 5.0.
Descripción de la arquitectura:
- Una instancia de separación de lectura/escritura de DCS para Redis 4.0 o 5.0 tiene un nombre de dominio de lectura/escritura y un nombre de dominio de sólo lectura. El cliente distingue entre las peticiones de lectura y las de escritura, y envía las de escritura al nombre de dominio de lectura/escritura y las de lectura al nombre de dominio de sólo lectura para conectarse al nodo principal o nodo en standby.
Los dos nombres de dominio se pueden obtener en la página de detalles de instancia de la consola.
- Las instancias principal/en standby de DCS compatibles con Redis 4.0 y 5.0 soportan los Sentinel. Los Sentinel supervisan el estado de ejecución de los nodos principal y en standby. Si el nodo principal se vuelve defectuoso, se realizará una migración por falla.
Los Sentinel son invisibles para usted y solo se utilizan en el servicio.
- Un nodo de sólo lectura tiene las mismas especificaciones que un nodo de lectura/escritura. Una instancia principal/en standby consta de un par de nodos principal y en standby de forma predeterminada.
- Las solicitudes de lectura se envían a réplicas. Hay un retraso cuando los datos se sincronizan desde el principal a las réplicas.
Si sus servicios son sensibles al retraso, no utilice instancias de separación de lectura/escritura. En su lugar, utilice instancias de principal/en standby o de clúster.
- La separación de lectura/escritura es adecuada cuando hay más solicitudes de lectura que solicitudes de escritura.If there are a lot of write requests, the master and replicas may be disconnected, or the data synchronization between them may fail after the disconnection. As a result, the read performance deteriorates.
If your services are write-heavy, use master/standby or cluster instances.
- If a replica is faulty, it takes some time to synchronize all data from the master. During the synchronization, the replica does not provide services, and the read performance of the instance deteriorates.
To reduce the impact of the fault, use an instance with less than 32 GB memory. The smaller the memory, the shorter the time for full data synchronization between the master and replicas, and the smaller the impact of the interruption.