En esta página, se describe cómo habilitar, conectar y supervisar el agrupamiento de conexiones administradas 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 los recursos.
Con la agrupación de conexiones administrada, puedes escalar las cargas de trabajo de tu base de datos optimizando el uso de recursos y la latencia de conexión para tus instancias de AlloyDB. La agrupación de conexiones administrada asigna dinámicamente conexiones de servidor a las solicitudes entrantes cuando es posible con la agrupación y la multiplexación. Este enfoque ofrece mejoras en el rendimiento, en especial para las conexiones escaladas, ya que absorbe los picos repentinos de 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 agrupador, que proporciona tiempos de conexión más cortos y escalabilidad para tus cargas de trabajo de lectura.
Si bien puedes usar la agrupación de conexiones administrada para cualquier carga de trabajo transaccional, es más adecuada para las aplicaciones que contienen más conexiones de corta duración o que pueden experimentar un aumento repentino de conexiones.
Antes de comenzar
Debes conectarte a tu instancia con una conexión directa. La agrupación de conexiones administradas no admite la conexión con el proxy de autenticación de AlloyDB ni con los conectores de lenguaje de AlloyDB.
Roles requeridos
Para obtener el permiso que necesitas para habilitar y usar la agrupación de conexiones administradas, pídele a tu administrador que te otorgue el rol de IAM de administrador de AlloyDB de Cloud (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 la agrupación de conexiones administradas.
alloydb.instances.update
También puedes obtener este permiso con roles personalizados o con otros roles predefinidos.
Opciones de configuración avanzada
La agrupación de conexiones administrada de AlloyDB admite las siguientes opciones de configuración avanzada de la agrupación. Puedes personalizar el agrupamiento de conexiones administradas para satisfacer las necesidades de tu instancia con estas opciones de configuración. Puedes establecer estos parámetros de configuración a nivel de la instancia con laGoogle Cloud consola, 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 (predeterminado) 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 por par de usuario y base de datos. 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. |
Tiempo de espera de la conexión de cliente inactiva(s) ( 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 0 segundos. |
Tiempo de espera de la conexión del servidor inactivo(s) ( 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 oscilar entre 0 y 2,147,483 segundos, y el valor predeterminado es de 600 segundos. |
Tiempo de espera de la consulta(s) ( connection-pooling-query-wait-timeout )
|
Es el tiempo que espera una consulta hasta que se agota el tiempo de espera. Este valor puede oscilar entre 0 y 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. |
Ignorar parámetros de inicio ( connection-pooling-ignore-startup-parameters )
|
Son los parámetros que deseas ignorar y que no se registran en los paquetes de inicio de forma predeterminada. |
Duración del servidor(s) ( connection-pooling-server-lifetime )
|
Es el tiempo máximo que una conexión de servidor permanece sin usar antes de que el grupo de conexiones administradas la cierre. El valor predeterminado es 3,600 segundos. |
De forma predeterminada, la agrupación de conexiones administradas inicia conexiones con el servidor de AlloyDB. Cuando se establece y autentica una conexión del cliente, la agrupación de conexiones administrada puede crear una o más conexiones del servidor para que el tamaño del grupo coincida con la configuración elegida. Luego, a la conexión del cliente se le asigna una conexión de servidor disponible. 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 administrada
Puedes habilitar el grupo de conexiones administrado para cualquier instancia existente o nueva.
Habilita una instancia principal nueva
Para crear una instancia principal nueva con la reducción de conexión administrada habilitada, consulta Crea una instancia principal. Puedes habilitar el grupo de conexiones administradas para una instancia con la consola deGoogle Cloud , Google Cloud CLI o la API de AlloyDB.
Habilita una instancia de grupo de lectura nueva
Para crear una instancia de grupo de lectura nueva con la reducción de conexión administrada habilitada, consulta Crear una instancia de grupo de lectura. Puedes habilitar el grupo de conexiones administradas para una instancia con la consola deGoogle Cloud , Google Cloud CLI o la API de AlloyDB.
Habilita para una instancia existente
Puedes habilitar la agrupación de conexiones administradas para una instancia existente con la consola deGoogle 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 de verificación Habilitar el grupo de conexiones administrado.
Opcional: Para configurar las opciones de agrupación de conexiones administradas, haz clic en Opciones avanzadas de agrupación.
Puedes personalizar las opciones de administración de la agrupación de conexiones para satisfacer las necesidades de tu instancia. Para obtener más información, consulta las opciones de configuración avanzadas.
Haz clic en Guardar cambios.
gcloud
Para habilitar el grupo de conexiones administrado para una instancia existente de grupo principal o de lectura, 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
: Es 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
: Es el ID del clúster.
Después de habilitar el grupo de conexiones administrado, puedes personalizar las opciones del grupo de conexiones administrado para satisfacer las necesidades de tu instancia configurando las opciones de configuración avanzada. Para obtener más información sobre cómo establecer las opciones de configuración, consulta Cómo modificar el grupo de conexiones administradas para una instancia.
REST
Para habilitar el grupo de conexiones administrado para una instancia principal o de lectura existente, 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
}
}
Conéctate a la agrupación de conexiones administrada
La conexión a la agrupación de conexiones administrada 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 podrá conectarse con el grupo de conexiones administrado.
Conéctate con la autenticación integrada
El ejemplo de comando conecta tu instancia de AlloyDB a la agrupación de conexiones administradas con la 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 las conexiones al grupo de conexiones administrado. De forma predeterminada, solo se aceptan las conexiones SSL. Para permitir conexiones sin encriptar, 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
Cómo modificar la agrupación de conexiones administrada para una instancia
Después de habilitar el agrupamiento de conexiones administrado, puedes personalizar las opciones de agrupamiento de conexiones administrado para satisfacer las necesidades de tu instancia con las opciones de configuración avanzada. Estas opciones de configuración se denominan marcas de agrupación de conexiones administradas. Para obtener más información sobre las opciones de configuración, sus valores predeterminados y rangos, consulta Opciones de configuración avanzadas.
Puedes modificar las opciones de configuración del 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 instancia o Editar grupo de lectura en la instancia que deseas modificar.
En Grupo de conexiones administrado, expande Opciones avanzadas de agrupación.
Modifica las opciones avanzadas de agrupación 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
- Tiempo de espera de la conexión de cliente inactiva(s)
- Tiempo de espera de la conexión del servidor inactivo(s)
- Tiempo de espera de la consulta(s)
- Cantidad máxima de instrucciones preparadas
- Ignorar parámetros de inicio
- Duración del servidor(s)
Haz clic en Actualizar instancia.
gcloud
Para modificar las opciones de configuración del agrupamiento 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 \
{ \
--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 \
| --connection-pooling-max-prepared-statements=MAX_PREPARED_STATEMENTS \
| --connection-pooling-server-lifetime=SERVER_LIFETIME \
| --connection-pooling-client-connection-idle-timeout=CLIENT_CONNECTION_IDLE_TIMEOUT \
}
Reemplaza lo siguiente:
INSTANCE_ID
: Es el nombre de la instancia de AlloyDB para la que deseas inhabilitar la 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.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
--connection-pooling-max-prepared-statements
--connection-pooling-server-lifetime
--connection-pooling-client-connection-idle-timeout
REST
Para modificar las opciones de configuración del agrupamiento de conexiones administrado para una instancia de grupo de lectura existente, 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 que creas. 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 de la agrupación de conexiones administrada para una instancia
Puedes ver el estado de la agrupación de conexiones administradas para 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 de la reducción de conexión administrada. El campo Grupo de conexiones administrado muestra si está habilitado o inhabilitado.
gcloud
Para ver el estado de la agrupación de conexiones administradas 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 la agrupación de conexiones administrada está habilitada, se devuelve la siguiente respuesta:
True
REST
Para ver el estado de la agrupación de conexiones administradas 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 creas. 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 la agrupación de conexiones administradas para una instancia existente con la consola deGoogle 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 para la instancia en la que deseas inhabilitar la conexión administrada de reducción.
En Grupo de conexiones administrado, desmarca la casilla de Habilitar grupo de conexiones administrado.
Haz clic en Actualizar instancia.
gcloud
Para inhabilitar el grupo de conexiones administrado en 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 la 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.
REST
Para inhabilitar el uso compartido de conexiones administradas en una instancia de grupo de lectura existente, usa el siguiente comando y configura connectionPoolConfig
como 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 creas. 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 administrada
AlloyDB proporciona las siguientes métricas para ayudarte a supervisar el funcionamiento del grupo 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 clientes agrupadas por el estado de la conexión del cliente por base de datos. Los estados
incluidos en esta métrica son:
|
Conexiones del servidor/database/conn_pool/server_connections |
Realiza un seguimiento de la cantidad de conexiones del servidor agrupadas por el estado de la conexión del servidor por base de datos. Los estados
incluidos en esta métrica son:
|
Tiempo de espera promedio/database/conn_pool/client_connections_avg_wait_time |
Es el tiempo promedio que todos los clientes pasan en estado de espera para 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 de vista previa y están sujetas a cambios o eliminación en la versión de GA o después:
- La agrupación de conexiones administrada no admite la conexión con el proxy de autenticación de AlloyDB ni con los conectores de lenguaje de AlloyDB.
- Si usas un grupo de conexiones administrado en el modo de grupo de conexiones de transacciones, no se admiten las siguientes funciones de SQL:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
tablas temporalesLOAD
- Bloqueos de asesoramiento a nivel de la sesión
- Planes preparados a nivel del protocolo
- La agrupación de conexiones administrada no se admite para las conexiones IP públicas.