La separación de lectura y escritura es una función del proxy de base de datos que enruta automáticamente las solicitudes de escritura a la instancia principal de RDS y las de lectura a las instancias de solo lectura de RDS. Conéctese a un único endpoint del proxy de base de datos; este se encarga del enrutamiento de forma transparente, por lo que el código de su aplicación no requiere modificaciones.
El diagrama anterior muestra cómo un único endpoint del proxy de base de datos acepta todas las solicitudes entrantes y las enruta: las operaciones de escritura se dirigen a la instancia principal de RDS, mientras que las de lectura se distribuyen entre las instancias de solo lectura de RDS.
Para obtener contexto sobre los proxies de base de datos, consulte ¿Qué son los proxies de base de datos?
Cuándo usar la separación de lectura y escritura
La separación de lectura y escritura es adecuada para cargas de trabajo con un volumen alto de lecturas y bajo de escrituras. Si su instancia principal de RDS está sobrecargada por solicitudes de lectura, esta función le permite escalar la capacidad de lectura al agregar instancias de solo lectura de RDS sin modificar la configuración de su aplicación.
Beneficios
Gestión simplificada de conexiones
Sin la separación de lectura y escritura, debe agregar a su aplicación los endpoints tanto de la instancia principal de RDS como de cada instancia de solo lectura. La incorporación de una nueva instancia de solo lectura requiere un cambio en la configuración de la aplicación.
Con la separación de lectura y escritura, su aplicación se conecta a un solo endpoint del proxy de base de datos. El proxy enruta las solicitudes automáticamente. Agregar o eliminar instancias de solo lectura de RDS no requiere cambios en su aplicación.
Integración nativa para menor latencia
La separación de lectura y escritura está integrada directamente en el ecosistema de ApsaraDB RDS. Las solicitudes llegan a la base de datos sin pasar por capas adicionales de análisis sintáctico y reenvío, lo que reduce la latencia de respuesta y disminuye la sobrecarga de mantenimiento.
Verificaciones automáticas de estado
La separación de lectura y escritura supervisa continuamente el estado de la instancia principal de RDS y de todas las instancias de solo lectura. Si una instancia de solo lectura falla o su latencia de replicación de datos supera el umbral configurado, el proxy deja de reenviar lecturas a esa instancia y las redirige a instancias sanas. Cuando la instancia se recupera, el proxy reanuda automáticamente el envío de lecturas hacia ella.
Cree como mínimo dos instancias de solo lectura de RDS para evitar un punto único de fallo (SPOF) en la ruta de lectura.
Pesos de enrutamiento y umbrales configurables
Asigne pesos de lectura a la instancia principal de RDS y a cada instancia de solo lectura para controlar cómo se distribuyen las lecturas. Establezca un umbral de latencia de replicación para definir cuándo una instancia de solo lectura se considera demasiado retrasada para atender solicitudes de lectura.
Cómo se enrutan las solicitudes
Las instancias de solo lectura de RDS atienden únicamente lecturas y no aceptan escrituras:
|
Tipo de operación |
Instancia principal de RDS |
Instancias de solo lectura de RDS |
|
Escrituras (INSERT, UPDATE, DELETE, SELECT FOR UPDATE) |
Sí |
No |
|
Lecturas (SELECT) |
Sí |
Sí |
La siguiente tabla muestra el comportamiento completo de enrutamiento para todos los tipos de solicitud.
|
Destino |
Tipos de solicitud |
|
Solo instancia principal de RDS |
Sentencias INSERT, UPDATE, DELETE y SELECT FOR UPDATE; operaciones DDL (crear o eliminar bases de datos y tablas, cambiar esquemas o permisos); solicitudes dentro de transacciones; llamadas a funciones definidas por el usuario; llamadas a procedimientos almacenados; sentencias múltiples; solicitudes que involucran tablas temporales; operaciones de lectura y escritura en tablas del sistema; operaciones de escritura en sentencias preparadas |
|
Instancia principal de RDS o instancias de solo lectura de RDS |
Sentencias SELECT fuera de transacciones; solicitudes previas a la primera escritura en una transacción cuando la separación de transacciones está habilitada; operaciones de lectura en sentencias preparadas; funciones del sistema seguras para ejecutar en instancias de solo lectura (por ejemplo, |
|
Instancia principal de RDS e instancias de solo lectura de RDS |
Solicitudes de reconfiguración de variables del sistema; operaciones de análisis sintáctico en sentencias preparadas; BEGIN, START, END, ROLLBACK y COMMIT; CANCEL |
Después de ejecutar sentencias múltiples o llamar a procedimientos almacenados, todas las solicitudes subsiguientes en la conexión actual se reenvían a la instancia principal de RDS. Para reanudar la separación de lectura y escritura, cierre la conexión actual y abra una nueva.