Los grupos de lectura de Cloud SQL admiten el balanceo de carga para tus cargas de trabajo de lectura grandes.
¿Qué son los grupos de lectura?
Un grupo de lectura es un conjunto de instancias de réplica de lectura que se usa para distribuir tus grandes cargas de trabajo de lectura. Estas cargas de trabajo se pueden redirigir de la instancia principal al grupo de lectura para reducir la carga de la instancia principal.
Cada réplica de lectura del grupo de lectura se denomina nodo del grupo de lectura.
Puedes escalar tu grupo de lectura de varias formas:
- Escalar verticalmente: escala la capacidad de balanceo de carga horizontalmente modificando el número de nodos del grupo de lectura. Cada grupo de lectura admite entre 1 y 20 nodos de grupo de lectura.
- Aumentar o reducir la escala: escala la capacidad de balanceo de carga verticalmente modificando el tipo de máquina asociado a un nodo de grupo de lectura. Una vez definida, la configuración se aplica de forma uniforme a todos los nodos del grupo de lectura.
Cuando modificas los ajustes de los nodos de un grupo de lectura, como el almacenamiento, la conectividad o las marcas de configuración de la base de datos, los cambios se aplican automáticamente de forma uniforme a todos los nodos del grupo de lectura.
Se puede acceder al grupo de lectura a través de un único punto de conexión de lectura con una dirección IP inmutable. Las conexiones realizadas a través del endpoint se redirigen automáticamente a uno de los nodos del grupo de lectura. Cuando quieras que el grupo de lectura se escale verticalmente o horizontalmente, no será necesario volver a configurar las aplicaciones que se hayan conectado previamente a este único endpoint de lectura, aunque puedes crear nodos de grupo de lectura nuevos o eliminar los anteriores.
Cada nodo del grupo de lectura también tiene su propia dirección IP. Aunque no se recomienda como un método eficiente para acceder a tus datos, puedes usar estas direcciones IP para solucionar problemas de rendimiento de nodos de grupos de lectura concretos.
Para obtener más información sobre cómo recuperar la información de conexión del grupo de lectura o de los nodos del grupo de lectura (direcciones IP o una cadena de conexión), consulta Ver información del grupo de lectura.
Se aplican las siguientes características:
- Los nodos del grupo de lectura siempre residen en la misma región, tal como lo especifica el usuario. Google Cloud alterna la residencia de los nodos del grupo de lectura entre todas las zonas de la región.
- Una instancia principal puede tener uno o varios grupos de lectura.
- Las siguientes operaciones provocan un tiempo de inactividad inferior a un segundo:
- Escalar horizontalmente (añadir o quitar nodos del grupo de lectura).
- Escalar verticalmente (cambiar el tipo de máquina de los nodos del grupo).
- Convertir una réplica de lectura zonal en un grupo de lectura.
- Un grupo de lectura recibe mantenimiento antes que su instancia principal, de forma similar a las réplicas de lectura. Al igual que las réplicas de lectura, los grupos de lectura reciben mantenimiento durante la ventana de mantenimiento de la instancia principal.
- Cada nodo del grupo de lectura tiene las mismas métricas disponibles que una réplica de lectura de Cloud SQL.
- Cuando se usa
gcloud
o la consola Google Cloud para describir los detalles de un proyecto, se muestra el nombre del grupo de lectura, pero no los nombres de los nodos individuales del grupo de lectura.
Limitaciones
Se aplican las siguientes limitaciones:
- Los grupos de lectura solo están disponibles para las instancias de Cloud SQL Enterprise Plus en la nueva arquitectura de red. La instancia principal asociada a un pool de lectura también debe ser una instancia de la edición Enterprise Plus de Cloud SQL.
- El tráfico se sirve desde los nodos del grupo de lectura en función de si la base de datos está en buen estado, pero independientemente de la latencia de replicación de ese nodo. El tráfico se puede servir desde un nodo del grupo de lectura con latencia, aunque haya otro nodo del grupo de lectura disponible que no tenga latencia. Una base de datos se considera en buen estado si el proceso de la base de datos está activo y puede responder a consultas, pero no hay ningún requisito sobre la antigüedad de los datos que se sirven.
- No se garantiza que una sola sesión lógica se conecte a varios nodos del grupo de lectura. Es posible que las solicitudes posteriores de una sesión se conecten a un nodo de grupo de lectura que tenga una posición de replicación (GTID) inferior a la del nodo de grupo de lectura que atendió una solicitud anterior, lo que puede provocar que el estado de la base de datos parezca retroceder en el tiempo.
- No se admiten los siguientes tipos de actualizaciones:
- Aunque los grupos de lectura siguen recibiendo actualizaciones de mantenimiento de Cloud SQL, no puedes actualizar tu grupo de lectura a una nueva versión principal o secundaria de la base de datos.
- Iniciar o detener nodos del grupo de lectura
- Además de las operaciones que no se admiten en las réplicas de lectura, las siguientes operaciones no se admiten en los grupos de lectura:
- Promocionar réplica
- restart
- import
- Exportación
- failover
- volver a cifrar
- clone
- Las siguientes funciones no se pueden usar con un grupo de lectura:
- Private Service Connect
- Certificados SSL/TLS con una CA compartida o gestionada por el cliente
- Un grupo de lectura no puede replicarse en otra instancia, por ejemplo, una réplica en cascada u otro grupo de lectura.
- Un grupo de lectura debe replicarse directamente desde una instancia principal. No puede ser una réplica en cascada.
- Si quieres convertir una réplica de lectura regional en un grupo de lectura, primero debes convertirla en una réplica de lectura zonal.
- Cuando crees o escales un grupo de lectura, debes esperar a que finalicen las operaciones anteriores de creación, reducción o ampliación asociadas al grupo de lectura. Esta restricción se aplica a cualquier otro grupo de lectura asociado a la misma instancia principal. Si quieres escalar varios grupos de lectura asociados a la misma instancia principal, debes esperar a que finalicen las operaciones de escalado asociadas al primer grupo de lectura antes de empezar a escalar el siguiente. Si envías solicitudes simultáneas, es posible que recibas el siguiente error:
Operation failed because another operation was already in progress.
. - Solo se puede convertir una réplica de zona ubicada en la misma región que la principal para usarla en un grupo de lectura.
- Si tu aplicación debe conectarse a una réplica de lectura dedicada (por ejemplo, debido a los índices secundarios presentes en una réplica de lectura específica), crea una réplica de lectura de Cloud SQL y úsala en su lugar.