Esta página descreve como ativar, se conectar e monitorar o agrupamento de conexões gerenciadas no AlloyDB para PostgreSQL. O pool de conexões gerenciado é um padrão de design que otimiza o gerenciamento de conexões de banco de dados ao manter um pool de conexões pré-estabelecidas. Esse pool de conexões é reutilizado pelo aplicativo em vez de abrir e fechar conexões para cada operação de banco de dados, o que melhora o desempenho e a utilização de recursos.
Com o pool de conexões gerenciado, é possível dimensionar as cargas de trabalho do banco de dados otimizando o uso de recursos e a latência de conexão para as instâncias do AlloyDB. O agrupamento de conexões gerenciado atribui dinamicamente conexões do servidor a solicitações recebidas sempre que possível usando agrupamento e multiplexação. Essa abordagem oferece melhorias de desempenho, especialmente para conexões escalonadas, absorvendo picos de conexão repentinos e reutilizando conexões de banco de dados existentes. Em vez de se conectar a um banco de dados específico, ao usar o pooling de conexões gerenciado, um aplicativo se conecta a um pooler, que oferece tempos de conexão mais curtos e escalonabilidade para as cargas de trabalho de leitura.
Embora seja possível usar o pooling de conexões gerenciado para qualquer carga de trabalho transacional, ele é mais adequado para aplicativos que contêm mais conexões de curta duração ou que podem ter um aumento de conexões.
Antes de começar
É necessário se conectar à instância usando uma conexão direta. O pooling de conexões gerenciado não oferece suporte à conexão com o proxy de autenticação do AlloyDB ou aos conectores de linguagem do AlloyDB.
Funções exigidas
Para receber a permissão necessária para ativar e usar o pool de conexões gerenciadas, peça ao administrador para conceder a você o papel do IAM de Administrador do Cloud AlloyDB (roles/alloydb.admin
) na instância do AlloyDB.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém a
permissão
,
necessária para
ativar e usar o pool de conexões gerenciadas.
alloydb.instances.update
Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.
Opções de configuração avançada
O pool de conexões gerenciado do AlloyDB é compatível com as seguintes opções de configuração avançadas de pool. É possível personalizar o pool de conexões gerenciadas para atender às necessidades da sua instância usando essas opções de configuração. É possível definir essas configurações no nível da instância usando o console do Google Cloud, a CLI do gcloud ou a API AlloyDB.
Nome da configuração | Descrição |
---|---|
Modo de conexão ( connection-pooling-pool-mode )
|
Para o modo de conexão, é possível selecionar transação (padrão) ou
sessão.
Transação ( transaction ):
Agrupa conexões em um nível de transação. Uma conexão de servidor é atribuída a um cliente durante uma transação. Depois que a transação é concluída, a conexão do servidor é colocada de volta no pool. Sessão ( session ):
Agrupa conexões no nível da sessão. Uma conexão de servidor é atribuída ao cliente durante todo o tempo que ele permanece conectado. Depois que o cliente se desconecta, a conexão do servidor é colocada de volta no pool. |
Tamanho máximo do pool ( connection-pooling-max-pool-size )
|
O tamanho máximo do pool de conexões. O valor padrão é 50 conexões. |
Tamanho mínimo do pool ( connection-pooling-min-pool-size )
|
O tamanho mínimo do pool de conexões. O valor padrão é 0 conexões. |
Tempo limite de conexões inativas de clientes ( connection-pooling-client-connection-idle-timeout )
|
O tempo que uma conexão de cliente permanece inativa antes de atingir o tempo limite. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é 0 segundos. Só é possível configurar esse parâmetro usando o console do Google Cloud. |
Tempo limite de conexões inativas do servidor ( connection-pooling-server-connection-idle-timeout )
|
O tempo que uma conexão de servidor permanece inativa antes de expirar. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é de 600 segundos. |
Tempo limite de espera da consulta ( connection-pooling-query-wait-timeout )
|
O tempo que uma consulta aguarda até o tempo limite. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é de 120 segundos. |
Instruções preparadas máximas ( connection-pooling-max-prepared-statements )
|
O número máximo de comandos de instruções preparadas enviados no modo de agrupamento de transações. O valor padrão é 0. |
Ignorar parâmetros de inicialização ( connection-pooling-ignore-startup-parameters )
|
Os parâmetros que você quer que sejam ignorados e que não são rastreados nos pacotes de inicialização por padrão. |
Ciclos de vida do servidor ( connection-pooling-server-lifetime )
|
O tempo máximo que uma conexão de servidor fica sem uso antes que o pool de conexões gerenciadas a feche. O valor padrão é de 3.600 segundos. Só é possível configurar esse parâmetro usando o console do Google Cloud. |
Por padrão, o pool de conexões gerenciadas inicia conexões com o servidor AlloyDB. Quando uma conexão de cliente é estabelecida e autenticada, o pool de conexões gerenciado pode criar uma ou mais conexões de servidor para que o tamanho do pool corresponda à configuração escolhida. A conexão do cliente é então atribuída a uma conexão de servidor disponível. As conexões do servidor são mantidas até serem explicitamente fechadas ou permanecerem inativas por mais tempo do que o tempo limite de conexão inativa do servidor.
Ativar o agrupamento de conexões gerenciado
É possível ativar o pool de conexões gerenciado para qualquer instância nova ou atual.
Ativar para uma nova instância principal
Para criar uma nova instância principal com o pool de conexões gerenciado ativado, consulte Criar uma instância principal. É possível ativar o pool de conexões gerenciadas para uma instância usando o console do Google Cloud, a CLI do Google Cloud ou a API AlloyDB.
Ativar para uma nova instância do pool de leitura
Para criar uma nova instância do pool de leitura com o pool de conexões gerenciado ativado, consulte Criar uma instância do pool de leitura. É possível ativar o pool de conexões gerenciadas para uma instância usando o console do Google Cloud, a CLI do Google Cloud ou a API AlloyDB.
Ativar para uma instância
É possível ativar o pool de conexões gerenciadas para uma instância usando o console do Google Cloud, a CLI do Google Cloud ou a API AlloyDB.
Console
Acesse a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, navegue até Instâncias no cluster.
Clique em Editar primário ou Editar pool de leitura.
Em Pool de conexões gerenciado, marque a caixa Ativar o pool de conexões gerenciado.
Opcional: para configurar as opções de agrupamento de conexões gerenciadas, clique em Opções avançadas de agrupamento.
É possível personalizar as opções de agrupamento de conexões gerenciadas para atender às necessidades da sua instância. Para mais informações, consulte Opções de configurações avançadas.
Clique em Salvar alterações.
gcloud
Para ativar o pool de conexões gerenciado em uma instância de pool de leitura ou principal
existente, use o comando gcloud alpha alloydb instances update
a seguir:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--enable-connection-pooling
Substitua:
INSTANCE_ID
: o ID da instância do AlloyDB para a qual você quer ativar o pool de conexões gerenciado.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.
Depois de ativar o pool de conexões gerenciado, é possível personalizar as opções de pool de conexões gerenciado para atender às necessidades da sua instância definindo as opções de configuração avançadas. Para mais informações sobre como definir as opções de configuração, consulte Modificar o pool de conexões gerenciadas de uma instância.
REST
Para ativar o pool de conexões gerenciado para uma instância de pool de leitura ou principal
existente, use o comando a seguir e defina connectionPoolConfig
:
Antes de usar os dados da solicitação, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.INSTANCE_ID
: o ID da instância.
Método HTTP e URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Solicitar corpo JSON:
{
"connectionPoolConfig": {
"enabled": true
}
}
Conectar-se ao agrupamento de conexões gerenciado
A conexão com o pool de conexões gerenciado é idêntica às conexões diretas do banco de dados, exceto em uma porta diferente. O agrupamento de conexões gerenciado detecta a porta 6432. Qualquer usuário adicionado à instância do AlloyDB pode se conectar usando o pool de conexões gerenciadas.
Conectar usando a autenticação integrada
O exemplo de comando conecta a instância do AlloyDB ao pool de conexões gerenciado usando a autenticação integrada.
psql postgresql://USERNAME:PASSWORD@IP_ADDRESS:6432/postgres
Conectar usando conexões SSL
O modo SSL da instância também se aplica a todas as conexões com o pool de conexões gerenciadas. Por padrão, somente conexões SSL são aceitas. Para permitir conexões não criptografadas, use o comando gcloud alloydb instances update
abaixo para definir o modo SSL da instância como 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
Modificar o agrupamento de conexões gerenciado de uma instância
Depois de ativar o agrupamento de conexões gerenciado, você pode personalizar as opções de agrupamento de conexões gerenciado para atender às necessidades da sua instância usando as opções de configuração avançada. Essas opções de configuração são chamadas de flags de agrupamento de conexões gerenciadas. Para mais informações sobre as opções de configuração, os valores padrão e os intervalos, consulte opções de configuração avançadas.
É possível modificar as opções de configuração do pool de conexões gerenciadas de uma instância existente usando o console do Google Cloud, a CLI do Google Cloud ou a API AlloyDB.
Console
Acesse a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, navegue até Instâncias no cluster.
Clique em Editar instância ou Editar pool de leitura na instância que você quer modificar.
Em Pool de conexões gerenciado, expanda Opções avançadas de agrupamento.
Modifique as opções de agrupamento avançado que você quer atualizar. É possível modificar as seguintes opções:
- Modo de conexão
- Tamanho máximo do pool
- Tamanho mínimo do pool
- Conexão máxima de clientes
- Tempo limite de conexões de clientes inativas
- Tempo limite de conexões inativas do servidor
- Tempo limite de espera da consulta
- Máximo de instruções preparadas
- Ignorar parâmetros de inicialização
- Ciclos de vida do servidor
Clique em Atualizar instância.
gcloud
Para modificar as opções de configuração do pool de conexões gerenciadas de uma instância
existente, use o seguinte 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 \
}
Substitua:
INSTANCE_ID
: o nome da instância do AlloyDB para a qual você quer desativar o pool de conexões gerenciado.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.É possível configurar as seguintes opções:
--connection-pooling-pool-mode
. Precisa sersession
outransaction
.--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 as opções de configuração de agrupamento de conexões gerenciadas de uma instância de pool de leitura, use o comando a seguir e defina connectionPoolConfig
:
Antes de usar os dados da solicitação, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster criado. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.INSTANCE_ID
: o ID da instância criada.É possível configurar as seguintes opções:
POOL_MODE
. Precisa sersession
outransaction
.MAX_POOL_SIZE
MIN_POOL_SIZE
MAX_CLIENT_CONNECTION
SERVER_IDLE_TIMEOUT
QUERY_WAIT_TIMEOUT
IGNORE_STARTUP_PARAMETERS
Método HTTP e URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Solicitar corpo JSON:
{
"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"
},
}
}
Conferir o status do pool de conexões gerenciado de uma instância
É possível conferir o status do pool de conexões gerenciadas de uma instância usando o console do Google Cloud, a CLI do Google Cloud ou a API AlloyDB.
Console
Acesse a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, encontre a instância para a qual você quer conferir o status do pool de conexões gerenciado. O campo Pool de conexões gerenciadas mostra se ele está ativado ou desativado.
gcloud
Para conferir o status do pool de conexões gerenciadas de uma instância,
use o comando gcloud alpha alloydb instances describe
a seguir:
gcloud alpha alloydb instances describe INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--format="value(connectionPoolConfig.enabled)"
Substitua:
INSTANCE_ID
: o nome da instância do AlloyDB para a qual você quer modificar as opções de agrupamento de conexões gerenciadas.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.
Se o agrupamento de conexões gerenciadas estiver ativado, a seguinte resposta será retornada:
True
REST
Para conferir o status do pool de conexões gerenciadas da sua instância do AlloyDB, use o comando a seguir e procure connectionPoolConfig
:
Antes de usar os dados da solicitação, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster criado. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.INSTANCE_ID
: o ID da instância criada.
Método HTTP e URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Desativar o agrupamento de conexões gerenciado para uma instância
É possível desativar o pool de conexões gerenciadas para uma instância atual usando o console do Google Cloud, a CLI do Google Cloud ou a API AlloyDB.
Console
Acesse a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, navegue até Instâncias no cluster.
Clique em Editar instância ou Editar pool de leitura para a instância que você quer desativar a conexão do pool gerenciado.
Em Pool de conexões gerenciado, desmarque a caixa Ativar pool de conexões gerenciado.
Clique em Atualizar instância.
gcloud
Para desativar o pool de conexões gerenciadas em uma instância atual, use o seguinte 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
Substitua:
INSTANCE_ID
: o nome da instância do AlloyDB para a qual você quer desativar o agrupamento de conexões gerenciado.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.
REST
Para desativar o pool de conexões gerenciado em uma instância de pool de leitura,
use o comando a seguir e defina connectionPoolConfig
como false
:
Antes de usar os dados da solicitação, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster criado. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hifens.INSTANCE_ID
: o ID da instância criada.
Método HTTP e URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Solicitar corpo JSON:
{
"connectionPoolConfig": {
"enabled": false
}
}
Monitorar o agrupamento de conexões gerenciado
O AlloyDB fornece as métricas a seguir para ajudar a monitorar como o pool de conexão gerenciado está sendo executado na sua instância. É possível conferir essas métricas usando o Metrics Explorer.
Nome da métrica | Descrição |
---|---|
Número de pools de conexão/database/conn_pool/num_pools |
O número total de pools de conexões por banco de dados. |
Conexões de clientes/database/conn_pool/client_connections |
Rastreia o número de conexões de cliente agrupadas pelo status da conexão de cliente por banco de dados. Os status
incluídos nesta métrica são:
|
Conexões do servidor/database/conn_pool/server_connections |
Rastreia o número de conexões de servidor agrupadas pelo status da conexão de servidor por banco de dados. Os status
incluídos nesta métrica são:
|
Tempo médio de espera/database/conn_pool/client_connections_avg_wait_time |
O tempo médio gasto por todos os clientes em estado de espera para um servidor em microssegundos por banco de dados. |
Para mais informações, consulte Métricas do AlloyDB.
Limitações
As limitações a seguir se aplicam à versão de pré-lançamento e estão sujeitas a alterações ou remoção após a versão de GA ou depois:
- O pooling de conexões gerenciado não oferece suporte à conexão com o proxy de autenticação do AlloyDB ou aos conectores de linguagem do AlloyDB.
- Se você usar o agrupamento de conexões gerenciado no modo de agrupamento de transações,
os seguintes recursos do SQL não terão suporte:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
tabelas temporáriasLOAD
- Bloqueios de aviso no nível da sessão
- Planos preparados no nível do protocolo