Esta página descreve como ativar, conectar e monitorar o pool de conexões gerenciadas no AlloyDB para PostgreSQL. O pooling de conexões gerenciado é um padrão de design que otimiza o gerenciamento de conexões de banco de dados mantendo 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 escalonar as cargas de trabalho do banco de dados otimizando o uso de recursos e a latência de conexão das instâncias do AlloyDB. O pooling de conexões gerenciado atribui dinamicamente conexões de servidor a solicitações recebidas quando possível usando pooling e multiplexação. Essa abordagem oferece melhorias de desempenho, especialmente para conexões escalonadas, absorvendo picos repentinos de conexão 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 gerenciadas, um aplicativo se conecta a um pooler, que oferece tempos de conexão mais curtos e escalonabilidade para suas 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 sofrer um aumento repentino de conexões.
Antes de começar
É preciso se conectar à instância usando uma conexão direta. O pooling de conexões gerenciadas não é compatível com a conexão com o proxy de autenticação ou os conectores de linguagem do AlloyDB.
Funções exigidas
Para receber a permissão necessária para ativar e usar o pool de conexões gerenciado,
peça ao administrador para conceder a você o papel do IAM de
Administrador do AlloyDB no Cloud (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 pooling de conexões gerenciado do AlloyDB é compatível com as seguintes opções avançadas de configuração de pooling. É possível personalizar o pool de conexões gerenciadas para atender às necessidades da sua instância usando estas opções de configuração. É possível definir essas configurações no nível da instância usando o consoleGoogle Cloud , a CLI 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 no nível da 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 em 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 por par de usuário e banco de dados. 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. |
Tempos 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 segundo. |
Tempos 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 atingir o tempo limite. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é de 600 segundos. |
Tempo limite de espera da(s) consulta(s) ( connection-pooling-query-wait-timeout )
|
O tempo que uma consulta aguarda até atingir o tempo limite. Esse valor pode variar de 0 a 2.147.483 segundos, e o valor padrão é de 120 segundos. |
Máximo de instruções preparadas ( 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. Esse parâmetro só pode ser configurado usando o console Google Cloud . |
Ignorar parâmetros de inicialização ( connection-pooling-ignore-startup-parameters )
|
Os parâmetros que você quer ignorar e que não são rastreados em 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. |
Por padrão, o pool de conexões gerenciadas inicia conexões com o servidor do 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. Em seguida, a conexão do cliente é atribuída a uma conexão de servidor disponível. As conexões com o servidor são mantidas até serem fechadas explicitamente ou ficarem inativas por mais tempo do que o período de tempo limite de conexão inativa do servidor.
Ativar o pooling 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 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 consoleGoogle Cloud , a Google Cloud CLI ou a API AlloyDB.
Ativar para uma nova instância do pool de leitura
Para criar uma 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 consoleGoogle Cloud , a Google Cloud CLI ou a API AlloyDB.
Ativar para uma instância atual
É possível ativar o pool de conexões gerenciadas para uma instância atual usando o consoleGoogle Cloud , a Google Cloud CLI ou a API AlloyDB.
Console
Acessar a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, navegue até Instâncias no seu cluster.
Clique em Editar principal ou Editar pool de leitura.
Em Pool de conexões gerenciado, marque a caixa Ativar pool de conexões gerenciado.
Opcional: para configurar opções de pool de conexões gerenciadas, clique em Opções avançadas de pool.
É possível personalizar as opções de pool 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 primária
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 \
--enable-connection-pooling
Substitua:
INSTANCE_ID
: o ID da instância do AlloyDB em que você quer ativar o pool de conexões gerenciadas.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, você pode personalizar as opções para atender às necessidades da sua instância definindo as opções de configuração avançada. 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 em uma instância principal ou de leitura
atual, 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 pool de conexões gerenciado
A conexão com o pooling de conexões gerenciado é idêntica às conexões diretas de banco de dados, exceto em uma porta diferente. O pooling de conexões gerenciado detecta na 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 sua instância do AlloyDB ao pool de conexões gerenciadas 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 gerenciado. Por padrão, somente conexões SSL são aceitas. Para permitir conexões não criptografadas, use o seguinte comando gcloud alloydb instances update
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 pooling de conexões gerenciado para uma instância
Depois de ativar o pool de conexões gerenciadas, você pode personalizar as opções 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 pool 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çada.
É possível modificar as opções de configuração do pool de conexões gerenciadas para uma instância existente usando o console Google Cloud , a Google Cloud CLI ou a API AlloyDB.
Console
Acessar a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, navegue até Instâncias no seu 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 pooling.
Modifique as opções avançadas de agrupamento que você quer atualizar. Você pode 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
- Tempos limite de conexões inativas de clientes
- Tempos limite de conexões inativas do servidor
- Tempo limite de espera da(s) consulta(s)
- 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 \
| --connection-pooling-server-lifetime=SERVER_LIFETIME \
| --connection-pooling-client-connection-idle-timeout=CLIENT_CONNECTION_IDLE_TIMEOUT \
}
Substitua:
INSTANCE_ID
: o nome da instância do AlloyDB em que você quer desativar o pool de conexões gerenciadas.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
--connection-pooling-server-lifetime
--connection-pooling-client-connection-idle-timeout
REST
Para modificar as opções de configuração do pool 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 que você criar. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hífens.INSTANCE_ID
: o ID da instância que você criar.É 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"
},
}
}
Ver 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 Google Cloud , Google Cloud CLI ou a API AlloyDB.
Console
Acessar a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, encontre a instância em que você quer ver 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 seguinte 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)"
Substitua:
INSTANCE_ID
: o nome da instância do AlloyDB em que você quer modificar as opções de pool 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 pooling de conexões gerenciado 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 que você criar. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hífens.INSTANCE_ID
: o ID da instância que você criar.
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 pool de conexões gerenciado para uma instância atual
É possível desativar o pool de conexões gerenciadas para uma instância atual usando o consoleGoogle Cloud , Google Cloud CLI ou a API AlloyDB.
Console
Acessar a página Clusters.
Clique em um cluster na coluna Nome do recurso.
Na página Visão geral, navegue até Instâncias no seu cluster.
Clique em Editar instância ou Editar pool de leitura para a instância em que você quer desativar a conexão de 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 em que você quer desativar o pool de conexões gerenciadas.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 gerenciadas em uma instância de pool de leitura atual,
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 que você criar. Ele precisa começar com uma letra minúscula e pode conter letras minúsculas, números e hífens.INSTANCE_ID
: o ID da instância que você criar.
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 pooling de conexões gerenciado
O AlloyDB fornece as seguintes métricas para ajudar você a monitorar como o pool de conexões gerenciadas 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 com 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 nessa métrica são:
|
Conexões de 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 nessa 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 no estado de espera por um servidor em microssegundos por banco de dados. |
Para mais informações, consulte Métricas do AlloyDB.
Limitações
As seguintes limitações se aplicam durante a versão de prévia e estão sujeitas a mudanças ou remoção após a versão GA ou depois:
- O pooling de conexões gerenciado não é compatível com a conexão com o proxy de autenticação do AlloyDB ou com os conectores de linguagem do AlloyDB.
- Se você usar o pool de conexões gerenciado no modo de pool de transações,
os seguintes recursos de SQL não serão compatíveis:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
tabelas temporáriasLOAD
- Bloqueios consultivos no nível da sessão
- Planos preparados no nível do protocolo
- O pooling de conexões gerenciado não é compatível com conexões de IP público.