En esta página, se describe cómo habilitar, conectarse a y supervisar el grupo de conexiones administrado en AlloyDB para PostgreSQL. La agrupación de conexiones administrada es un patrón de diseño que optimiza la administración de conexiones de bases de datos manteniendo un grupo de conexiones preestablecidas. Luego, la aplicación reutiliza este grupo de conexiones en lugar de abrir y cerrar conexiones para cada operación de la base de datos, lo que mejora el rendimiento y el uso de recursos.
Con la agrupación de conexiones administrada, puedes escalar las cargas de trabajo de la base de datos mediante la optimización del uso de recursos y la latencia de conexión de tus instancias de AlloyDB. La agrupación de conexiones administrada asigna conexiones del servidor a las solicitudes entrantes de forma dinámica cuando es posible mediante la agrupación y la multiplexación. Este enfoque proporciona mejoras de rendimiento, en especial para las conexiones ajustadas, ya que absorbe los aumentos repentinos de la conexión y reutiliza las conexiones de bases de datos existentes. En lugar de conectarse a una base de datos específica, cuando se usa la agrupación de conexiones administrada, una aplicación se conecta a un grupo de conexiones, lo que proporciona tiempos de conexión más cortos y escalabilidad para tus cargas de trabajo de lectura.
Si bien puedes usar el grupo de conexiones administrado para cualquier carga de trabajo transaccional, este es más adecuado para aplicaciones que contienen más conexiones de corta duración o aplicaciones que podrían experimentar un aumento de conexiones.
Antes de comenzar
Debes conectarte a tu instancia mediante una conexión directa. La agrupación de conexiones administrada no admite la conexión con el proxy de autenticación de AlloyDB ni los conectores de lenguaje de AlloyDB.
Roles obligatorios
Para obtener el permiso que necesitas para habilitar y usar el grupo de conexiones administrado, pídele a tu administrador que te otorgue el rol de IAM Administrador de Cloud AlloyDB (roles/alloydb.admin
) en la instancia de AlloyDB.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene el permiso
, que se requiere para habilitar y usar el grupo de conexiones administrado.
alloydb.instances.update
También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.
Opciones de configuración avanzada
El grupo de conexiones administrado de AlloyDB admite las siguientes opciones de configuración de agrupación avanzadas. Puedes personalizar el grupo de conexiones administrado para satisfacer las necesidades de tu instancia con estas opciones de configuración. Puedes establecer estas configuraciones a nivel de la instancia con la console de Google Cloud, gcloud CLI o la API de AlloyDB.
Nombre de la configuración | Descripción |
---|---|
Modo de conexión ( connection-pooling-pool-mode )
|
Para el modo de conexión, puedes seleccionar transacción (predeterminada) o sesión.
Transacción ( transaction ):
Agrupa conexiones a nivel de la transacción. Se asigna una conexión de servidor a un cliente durante una transacción. Una vez que se completa la transacción, la conexión del servidor se vuelve a colocar en el grupo. Sesión ( session ):
Agrupa las conexiones a nivel de la sesión. Se asigna una conexión de servidor al cliente durante todo el tiempo que permanece conectado. Después de que el cliente se desconecta, la conexión del servidor se vuelve a colocar en el grupo. |
Tamaño máximo del grupo ( connection-pooling-max-pool-size )
|
Es el tamaño máximo del grupo de conexiones. El valor predeterminado es 50 conexiones. |
Tamaño mínimo del grupo ( connection-pooling-min-pool-size )
|
Es el tamaño mínimo del grupo de conexiones. El valor predeterminado es 0 conexiones. |
Tiempos de espera de la conexión de cliente inactiva ( connection-pooling-client-connection-idle-timeout )
|
Es el tiempo que una conexión de cliente permanece inactiva antes de que se agote el tiempo de espera. Este valor puede variar de 0 a 2,147,483 segundos, y el valor predeterminado es de 0 segundos. Solo puedes configurar este parámetro con la consola de Google Cloud. |
Tiempos de espera de la conexión del servidor inactivo ( connection-pooling-server-connection-idle-timeout )
|
Es el tiempo que una conexión del servidor permanece inactiva antes de que se agote el tiempo de espera. Este valor puede variar de 0 a 2,147,483 segundos, y el valor predeterminado es de 600 segundos. |
Tiempos de espera de consulta ( connection-pooling-query-wait-timeout )
|
Es el tiempo que una consulta espera hasta que se agota el tiempo de espera. Este valor puede variar de 0 a 2,147,483 segundos, y el valor predeterminado es de 120 segundos. |
Cantidad máxima de instrucciones preparadas ( connection-pooling-max-prepared-statements )
|
Es la cantidad máxima de comandos de instrucciones preparadas que se envían en el modo de agrupación de transacciones. El valor predeterminado es 0. |
Ignora los parámetros de inicio ( connection-pooling-ignore-startup-parameters ).
|
Los parámetros que deseas ignorar y de los que no se realiza un seguimiento en los paquetes de inicio de forma predeterminada |
Vida útil del servidor ( connection-pooling-server-lifetime )
|
Es el tiempo máximo que una conexión de servidor no se usa antes de que el grupo de conexiones administrado la cierre. El valor predeterminado es 3,600 segundos. Solo puedes configurar este parámetro con la consola de Google Cloud. |
De forma predeterminada, el grupo de conexiones administrado inicia conexiones con el servidor de AlloyDB. Cuando se establece y autentica una conexión cliente, la agrupación de conexiones administrada puede crear una o más conexiones de servidor para que el tamaño del grupo coincida con la configuración elegida. Luego, se asigna una conexión de servidor disponible a la conexión del cliente. Las conexiones del servidor se mantienen hasta que se cierran de forma explícita o permanecen inactivas durante más tiempo que el período de tiempo de espera de la conexión del servidor inactiva.
Habilita la agrupación de conexiones administradas
Puedes habilitar el grupo de conexiones administrado para cualquier instancia nueva o existente.
Habilita la PITR para una instancia principal nueva
Para crear una instancia principal nueva con el grupo de conexiones administrado habilitado, consulta Cómo crear una instancia principal. Puedes habilitar el grupo de conexiones administrado para una instancia con la consola de Google Cloud, Google Cloud CLI o la API de AlloyDB.
Habilita la función para una instancia de grupo de lectura nueva
Para crear una instancia de grupo de lectura nueva con el grupo de conexiones administrado habilitado, consulta Cómo crear una instancia de grupo de lectura. Puedes habilitar el grupo de conexiones administrado para una instancia con la consola de Google Cloud, Google Cloud CLI o la API de AlloyDB.
Habilita la función para una instancia existente
Puedes habilitar el grupo de conexiones administrado para una instancia existente con la consola de Google Cloud, Google Cloud CLI o la API de AlloyDB.
Console
Ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
En la página Descripción general, navega a Instancias en tu clúster.
Haz clic en Editar principal o Editar grupo de lectura.
En Grupo de conexiones administrado, marca la casilla Habilitar el grupo de conexiones administrado.
Opcional: Para configurar las opciones de grupo de conexiones administradas, haz clic en Opciones avanzadas de grupo.
Puedes personalizar las opciones de aprovisionamiento de conexiones administradas para satisfacer las necesidades de tu instancia. Para obtener más información, consulta las opciones de configuración avanzada.
Haz clic en Guardar cambios.
gcloud
Para habilitar el grupo de conexiones administrado para una instancia de grupo primario o de lectura existente, usa el siguiente comando gcloud alpha alloydb instances update
:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--enable-connection-pooling
Reemplaza lo siguiente:
INSTANCE_ID
: El ID de la instancia de AlloyDB para la que deseas habilitar el grupo de conexiones administrado.PROJECT_ID
: el ID del proyecto.REGION_ID
: Es el ID de la región.CLUSTER_ID
: El ID del clúster.
Después de habilitar el grupo de conexiones administrado, puedes personalizar las opciones de grupo de conexiones administrado para satisfacer las necesidades de tu instancia configurando las opciones de configuración avanzadas. Para obtener más información sobre cómo configurar las opciones de configuración, consulta Cómo modificar el grupo de conexiones administrado de una instancia.
REST
Para habilitar el grupo de conexiones administrado para una instancia existente del grupo primario o de lectura, usa el siguiente comando y configura connectionPoolConfig
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: el ID del proyecto.LOCATION_ID
: Es el ID de la región del clúster.CLUSTER_ID
: Es el ID del clúster. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.INSTANCE_ID
: el ID de la instancia
Método HTTP y URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{
"connectionPoolConfig": {
"enabled": true
}
}
Cómo conectarse al grupo de conexiones administrado
La conexión al grupo de conexiones administrado es idéntica a las conexiones directas a la base de datos, excepto que se realiza en un puerto diferente. La agrupación de conexiones administrada escucha en el puerto 6432. Cualquier usuario que se agregue a la instancia de AlloyDB puede conectarse con el grupo de conexiones administrado.
Cómo conectarse con la autenticación integrada
El ejemplo de comando conecta tu instancia de AlloyDB al grupo de conexiones administrado con autenticación integrada.
psql postgresql://USERNAME:PASSWORD@IP_ADDRESS:6432/postgres
Conéctate con conexiones SSL
El modo SSL de la instancia también se aplica a cualquier conexión al grupo de conexiones
administrado. De forma predeterminada, solo se aceptan las conexiones SSL. Para permitir conexiones no encriptadas, usa el siguiente comando gcloud alloydb instances update
para establecer el modo SSL de la instancia en ALLOW_UNENCRYPTED_AND_ENCRYPTED
.
gcloud alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
Modifica la agrupación de conexiones administradas de una instancia
Después de habilitar el grupo de conexiones administrado, puedes personalizar las opciones de grupo de conexiones administrado para satisfacer las necesidades de tu instancia con las opciones de configuración avanzadas. Estas opciones de configuración se denominan marcas de aprovisionamiento de conexiones administradas. Para obtener más información sobre las opciones de configuración, sus valores predeterminados y los rangos, consulta Opciones de configuración avanzadas.
Puedes modificar las opciones de configuración del grupo de conexiones administrado de una instancia existente con la consola de Google Cloud, Google Cloud CLI o la API de AlloyDB.
Console
Ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
En la página Descripción general, navega a Instancias en tu clúster.
Haz clic en Editar instancia o Editar grupo de lectura de la instancia que deseas modificar.
En Grupo de conexiones administrado, expande Opciones de grupo de conexiones avanzadas.
Modifica las opciones de agrupación avanzadas que deseas actualizar. Puedes modificar las siguientes opciones:
- Modo de conexión
- Tamaño máximo del grupo
- Tamaño mínimo del grupo
- Conexión máxima del cliente
- Tiempos de espera de las conexiones de cliente inactivas
- Tiempos de espera de la conexión del servidor inactiva
- Tiempos de espera de la consulta
- Cantidad máxima de instrucciones preparadas
- Ignorar parámetros de inicio
- Vida útil del servidor
Haz clic en Actualizar instancia.
gcloud
Para modificar las opciones de configuración del grupo de conexiones administrado de una instancia existente, usa el siguiente comando gcloud alpha alloydb instances update
:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
{ \
--connection-pooling-pool-mode=CONNECTION_MODE \
| --connection-pooling-max-pool-size=MAX_POOL_SIZE \
| --connection-pooling-min-pool-size=MIN_POOL_SIZE \
| --connection-pooling-max-client-connections=MAX_CLIENT_CONNECTION \
| --connection-pooling-server-idle-timeout=SERVER_IDLE_TIMEOUT_PERIOD \
| --connection-pooling-query-wait-timeout=QUERY_WAIT_TIMEOUT_PERIOD \
| --connection-pooling-ignore-startup-parameters=IGNORE_STARTUP_PARAMETERS \
}
Reemplaza lo siguiente:
INSTANCE_ID
: Es el nombre de la instancia de AlloyDB para la que deseas inhabilitar el grupo de conexiones administrado.PROJECT_ID
: el ID del proyecto.REGION_ID
: Es el ID de la región.CLUSTER_ID
: Es el ID del clúster.Puedes configurar las siguientes opciones:
--connection-pooling-pool-mode
. Debe sersession
otransaction
.--connection-pooling-max-pool-size
--connection-pooling-min-pool-size
--connection-pooling-max-client-connections
--connection-pooling-server-idle-timeout
--connection-pooling-query-wait-timeout
--connection-pooling-ignore-startup-parameters
REST
Para modificar las opciones de configuración del grupo de conexiones administrado de una instancia de grupo de lectura existente, usa el siguiente comando y establece connectionPoolConfig
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: el ID del proyecto.LOCATION_ID
: Es el ID de la región del clúster.CLUSTER_ID
: Es el ID del clúster que creaste. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.INSTANCE_ID
: Es el ID de la instancia que creas.Puedes configurar las siguientes opciones:
POOL_MODE
. Debe sersession
otransaction
.MAX_POOL_SIZE
MIN_POOL_SIZE
MAX_CLIENT_CONNECTION
SERVER_IDLE_TIMEOUT
QUERY_WAIT_TIMEOUT
IGNORE_STARTUP_PARAMETERS
Método HTTP y URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{
"connectionPoolConfig": {
"enabled": true,
"flags": {
"pool_mode": "POOL_MODE",
"max_pool_size": "MAX_POOL_SIZE",
"min_pool_size": "MIN_POOL_SIZE",
"max_client_connection": "MAX_CLIENT_CONNECTION",
"server_idle_timeout": "SERVER_IDLE_TIMEOUT",
"query_wait_timeout": "QUERY_WAIT_TIMEOUT",
"ignore_startup_parameters": "IGNORE_STARTUP_PARAMETERS"
},
}
}
Consulta el estado del grupo de conexiones administrado de una instancia
Puedes ver el estado del grupo de conexiones administrado de una instancia con la consola de Google Cloud, Google Cloud CLI o la API de AlloyDB.
Console
Ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
En la página Descripción general, busca la instancia para la que deseas ver el estado del grupo de conexiones administrado. El campo Grupo de conexiones administrado muestra si está habilitado o inhabilitado.
gcloud
Para ver el estado del grupo de conexiones administrado de una instancia existente, usa el siguiente comando gcloud alpha alloydb instances describe
:
gcloud alpha alloydb instances describe INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--format="value(connectionPoolConfig.enabled)"
Reemplaza lo siguiente:
INSTANCE_ID
: Es el nombre de la instancia de AlloyDB para la que deseas modificar las opciones de agrupación de conexiones administradas.PROJECT_ID
: el ID del proyecto.REGION_ID
: Es el ID de la región.CLUSTER_ID
: Es el ID del clúster.
Si el grupo de conexiones administrado está habilitado, se muestra la siguiente respuesta:
True
REST
Para ver el estado del grupo de conexiones administrado de tu instancia de AlloyDB, usa el siguiente comando y busca connectionPoolConfig
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: el ID del proyecto.LOCATION_ID
: Es el ID de la región del clúster.CLUSTER_ID
: Es el ID del clúster que creaste. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.INSTANCE_ID
: Es el ID de la instancia que creas.
Método HTTP y URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Inhabilita la agrupación de conexiones administradas para una instancia existente
Puedes inhabilitar el grupo de conexiones administrado para una instancia existente con la consola de Google Cloud, Google Cloud CLI o la API de AlloyDB.
Console
Ve a la página Clústeres.
Haz clic en un clúster en la columna Nombre del recurso.
En la página Resumen, navega a Instancias en tu clúster.
Haz clic en Editar instancia o Editar grupo de lectura de la instancia en la que deseas inhabilitar la conexión del grupo de conexiones administrado.
En Grupo de conexiones administrado, borra la casilla de verificación Habilitar el grupo de conexiones administrado.
Haz clic en Actualizar instancia.
gcloud
Para inhabilitar el grupo de conexiones administrado para una instancia existente, usa el siguiente comando gcloud alpha alloydb instances update
:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--no-enable-connection-pooling
Reemplaza lo siguiente:
INSTANCE_ID
: Es el nombre de la instancia de AlloyDB para la que deseas inhabilitar el grupo de conexiones administrado.PROJECT_ID
: el ID del proyecto.REGION_ID
: Es el ID de la región.CLUSTER_ID
: Es el ID del clúster.
REST
Para inhabilitar el grupo de conexiones administrado para una instancia de grupo de lectura existente, usa el siguiente comando y establece connectionPoolConfig
en false
:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: el ID del proyecto.LOCATION_ID
: Es el ID de la región del clúster.CLUSTER_ID
: Es el ID del clúster que creaste. Debe comenzar con una letra minúscula y puede contener letras minúsculas, números y guiones.INSTANCE_ID
: Es el ID de la instancia que creas.
Método HTTP y URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Cuerpo JSON de la solicitud:
{
"connectionPoolConfig": {
"enabled": false
}
}
Supervisa la agrupación de conexiones administradas
AlloyDB proporciona las siguientes métricas para ayudarte a supervisar cómo se ejecuta el agrupamiento de conexiones administrado en tu instancia. Puedes ver estas métricas con el Explorador de métricas.
Nombre de la métrica | Descripción |
---|---|
Cantidad de grupos de conexiones/database/conn_pool/num_pools |
Es la cantidad total de grupos de conexiones por base de datos. |
Conexiones con clientes/database/conn_pool/client_connections |
Realiza un seguimiento de la cantidad de conexiones de cliente agrupadas por el estado de la conexión de cliente por base de datos. Los estados
incluidos en esta métrica son los siguientes:
|
Conexiones del servidor/database/conn_pool/server_connections |
Realiza un seguimiento de la cantidad de conexiones de servidor agrupadas por el estado de la conexión de servidor por base de datos. Los estados
incluidos en esta métrica son los siguientes:
|
Tiempo de espera promedio/database/conn_pool/client_connections_avg_wait_time |
Es el tiempo promedio que pasan todos los clientes en estado de espera de un servidor en microsegundos por base de datos. |
Para obtener más información, consulta Métricas de AlloyDB.
Limitaciones
Se aplican las siguientes limitaciones durante la versión Versión preliminar y están sujetas a cambios o eliminaciones en la versión GA o después:
- La agrupación de conexiones administrada no admite la conexión con el proxy de autenticación de AlloyDB ni los conectores de lenguaje de AlloyDB.
- Si usas el grupo de conexiones administrado en el modo de grupo de transacciones,
las siguientes funciones de SQL no son compatibles:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
- Tablas temporales de
PRESERVE/DELETE ROW
LOAD
- Bloqueos de advertencia a nivel de la sesión
- Planes preparados a nivel del protocolo