Esta página descreve como ativar, estabelecer ligação e monitorizar o agrupamento de ligações geridas no AlloyDB para PostgreSQL. A pool de ligações gerida é um padrão de design que otimiza a gestão de ligações à base de dados através da manutenção de uma pool de ligações pré-estabelecidas. Este conjunto de ligações é reutilizado pela aplicação em vez de abrir e fechar ligações para cada operação de base de dados, o que melhora o desempenho e a utilização de recursos.
Com a pool de ligações gerida, pode dimensionar as cargas de trabalho da base de dados otimizando a utilização de recursos e a latência de ligação para as instâncias do AlloyDB. A gestão de pool de ligações atribui dinamicamente ligações de servidor a pedidos recebidos quando possível através de pooling e multiplexagem. Esta abordagem oferece melhorias no desempenho, especialmente para ligações dimensionadas, através da absorção de picos súbitos de ligações e da reutilização de ligações de bases de dados existentes. Em vez de se ligar a uma base de dados específica, quando usa o agrupamento de ligações geridas, uma aplicação liga-se a um agrupador, que oferece tempos de ligação mais curtos e escalabilidade para as suas cargas de trabalho de leitura.
Embora possa usar a pool de ligações gerida para qualquer carga de trabalho transacional, a pool de ligações gerida é mais adequada para aplicações que contenham mais ligações de curta duração ou aplicações que possam sofrer um aumento repentino de ligações.
Antes de começar
Tem de estabelecer ligação à sua instância através de uma ligação direta. A gestão de pools de ligações não suporta a ligação ao proxy de autenticação do AlloyDB nem aos conetores de linguagem do AlloyDB.
Funções necessárias
Para receber a autorização de que
precisa para ativar e usar o conjunto de ligações gerido,
peça ao seu administrador para lhe conceder a função de IAM
administrador do AlloyDB no Google Cloud (roles/alloydb.admin
)
na instância do AlloyDB.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém a autorização
, que é necessária para
ativar e usar o conjunto de ligações gerido.
alloydb.instances.update
Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.
Opções de configuração avançadas
A funcionalidade de agrupamento de ligações gerido do AlloyDB suporta as seguintes opções de configuração de agrupamento avançadas. Pode personalizar o conjunto de ligações geridas para satisfazer as necessidades da sua instância através destas opções de configuração. Pode definir estas configurações ao nível da instância através daGoogle Cloud consola, da CLI gcloud ou da API AlloyDB.
Nome da configuração | Descrição |
---|---|
Modo de ligação ( connection-pooling-pool-mode )
|
Para o modo de ligação, pode selecionar a transação (predefinição) ou a sessão.
Transação ( transaction ):
Agrupa as ligações ao nível da transação. Uma ligação de servidor é atribuída a um cliente durante uma transação. Após a conclusão da transação, a ligação do servidor é reposta no conjunto. Sessão ( session ):
Agrupa as ligações ao nível da sessão. É atribuída uma ligação de servidor ao cliente durante todo o tempo em que este permanece ligado. Depois de o cliente se desligar, a ligação ao servidor é novamente colocada no conjunto. |
Tamanho máximo da piscina: ( connection-pooling-max-pool-size )
|
O tamanho máximo do conjunto de ligações por par de utilizador e base de dados. O valor predefinido é 50 associações. |
Tamanho mínimo do conjunto ( connection-pooling-min-pool-size )
|
O tamanho mínimo do conjunto de ligações. O valor predefinido é 0 connections. |
Limites de tempo de inatividade da ligação do cliente ( connection-pooling-client-connection-idle-timeout )
|
O tempo que uma ligação de cliente permanece inativa antes de expirar. Este valor pode variar entre 0 e 2 147 483 segundos, e o valor predefinido é 0 segundos. |
Limites de tempo de inatividade da ligação ao servidor ( connection-pooling-server-connection-idle-timeout )
|
O tempo que uma ligação de servidor permanece inativa antes de expirar o tempo limite. Este valor pode variar entre 0 e 2 147 483 segundos, e o valor predefinido é 600 segundos. |
Tempos limite de espera da consulta ( connection-pooling-query-wait-timeout )
|
O tempo que uma consulta aguarda até exceder o tempo limite. Este valor pode variar entre 0 e 2 147 483 segundos, e o valor predefinido é 120 segundos. |
Máximo de declarações preparadas: ( connection-pooling-max-prepared-statements )
|
O número máximo de comandos de declarações preparadas enviados no modo de agrupamento de transações. O valor predefinido é 0. |
Ignorar parâmetros de arranque ( connection-pooling-ignore-startup-parameters )
|
Os parâmetros que quer ignorar e que não são acompanhados nos pacotes de arranque por predefinição. |
Tempo de vida do servidor ( connection-pooling-server-lifetime )
|
O tempo máximo durante o qual uma ligação de servidor fica sem utilização antes de a pool de ligações geridas a fechar. O valor predefinido é 3600 segundos. |
Por predefinição, o conjunto de ligações gerido inicia ligações ao servidor do AlloyDB. Quando uma ligação de cliente é estabelecida e autenticada, a gestão de conjuntos de ligações pode criar uma ou mais ligações de servidor para que a dimensão do conjunto corresponda à configuração escolhida. Em seguida, é atribuída uma ligação de servidor disponível à ligação de cliente. As ligações ao servidor são mantidas até serem fechadas explicitamente ou ficarem inativas durante um período superior ao período de tempo limite de ligação inativa do servidor.
Ative a partilha de ligações gerida
Pode ativar o conjunto de ligações gerido para instâncias existentes ou novas.
Ative-o para uma nova instância principal
Para criar uma nova instância principal com a funcionalidade de agrupamento de ligações geridas ativada, consulte o artigo Crie uma instância principal. Pode ativar o conjunto de ligações gerido para uma instância através da Google Cloud consola, da Google Cloud CLI ou da API AlloyDB.
Ative para uma nova instância de conjunto de leitura
Para criar uma nova instância de banco de leitura com a funcionalidade de agrupamento de ligações gerido ativada, consulte o artigo Crie uma instância de banco de leitura. Pode ativar o conjunto de ligações gerido para uma instância através da Google Cloud consola, da Google Cloud CLI ou da API AlloyDB.
Ative para uma instância existente
Pode ativar o conjunto de ligações gerido para uma instância existente através da Google Cloud consola, da Google Cloud CLI ou da API AlloyDB.
Consola
Aceda à página Clusters.
Clique num cluster na coluna Nome do recurso.
Na página Vista geral, navegue para Instâncias no seu cluster.
Clique em Editar principal ou Editar conjunto de leitura.
Em Conjunto de ligações gerido, selecione a caixa Ativar conjunto de ligações gerido.
Opcional: para configurar as opções de agrupamento de ligações geridas, clique em Opções avançadas de agrupamento.
Pode personalizar as opções de agrupamento de ligações geridas para satisfazer as necessidades da sua instância. Para mais informações, consulte as opções de configurações avançadas.
Clique em Guardar alterações.
gcloud
Para ativar a pool de ligações gerida para uma instância principal ou de leitura 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 \
--enable-connection-pooling
Substitua o seguinte:
INSTANCE_ID
: o ID da instância do AlloyDB para a qual quer ativar o pool de ligações gerido.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.
Depois de ativar a partilha de ligações gerida, pode personalizar as opções de partilha de ligações gerida para satisfazer as 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 o artigo Modifique a partilha de ligações gerida para uma instância.
REST
Para ativar a partilha de ligações geridas para uma instância principal ou de leitura existente, use o seguinte comando e defina connectionPoolConfig
:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster. Tem de começar com uma letra minúscula e pode conter letras minúsculas, números e hífenes.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
Corpo JSON do pedido:
{
"connectionPoolConfig": {
"enabled": true
}
}
Ligue-se à gestão de conjuntos de ligações
A ligação à partilha de ligações gerida é idêntica às ligações diretas à base de dados, exceto num porto diferente. A pool de ligações gerida escuta na porta 6432. Qualquer utilizador adicionado à instância do AlloyDB pode estabelecer ligação através da partilha de ligações gerida.
Estabeleça ligação através da autenticação integrada
O exemplo de comando associa a sua instância do AlloyDB à partilha de ligações gerida através da autenticação incorporada.
psql postgresql://USERNAME:PASSWORD@IP_ADDRESS:6432/postgres
Ligue através de ligações SSL
O modo SSL da instância também se aplica a quaisquer ligações ao conjunto de ligações gerido. Por predefinição, apenas são aceites ligações SSL. Para permitir ligações não encriptadas, 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
Modifique o conjunto de ligações gerido para uma instância
Depois de ativar a partilha de ligações gerida, pode personalizar as opções de partilha de ligações gerida de acordo com as necessidades da sua instância através das opções de configuração avançadas. Estas opções de configuração são denominadas flags de agrupamento de ligações geridas. Para mais informações sobre as opções de configuração, os respetivos valores predefinidos e intervalos, consulte as opções de configuração avançadas.
Pode modificar as opções de configuração do conjunto de ligações gerido para uma instância existente através da Google Cloud consola, da CLI Google Cloud ou da API AlloyDB.
Consola
Aceda à página Clusters.
Clique num cluster na coluna Nome do recurso.
Na página Vista geral, navegue para Instâncias no seu cluster.
Clique em Editar instância ou Editar conjunto de leitura para a instância que quer modificar.
Em Conjunto de ligações gerido, expanda as Opções avançadas de agrupamento.
Modifique as opções de união avançadas que quer atualizar. Pode modificar as seguintes opções:
- Modo de ligação
- Tamanho máximo do conjunto
- Tamanho mínimo da piscina
- Associação máxima de clientes
- Limites de tempo de inatividade da ligação do cliente
- Limites de tempo de inatividade da ligação ao servidor
- Tempo limite de espera da consulta
- Número máximo de declarações preparadas
- Ignorar parâmetros de arranque
- Duração do servidor
Clique em Atualizar instância.
gcloud
Para modificar as opções de configuração do conjunto de ligações geridas para 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-max-prepared-statements=MAX_PREPARED_STATEMENTS \
| --connection-pooling-server-lifetime=SERVER_LIFETIME \
| --connection-pooling-client-connection-idle-timeout=CLIENT_CONNECTION_IDLE_TIMEOUT \
}
Substitua o seguinte:
INSTANCE_ID
: o nome da instância do AlloyDB para a qual quer desativar o conjunto de ligações gerido.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.Pode configurar as seguintes opções:
--connection-pooling-pool-mode
. Tem de ser um dos seguintes:session
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-max-prepared-statements
--connection-pooling-server-lifetime
--connection-pooling-client-connection-idle-timeout
REST
Para modificar as opções de configuração do conjunto de ligações geridas para uma instância de conjunto de leitura existente, use o seguinte comando e defina connectionPoolConfig
:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster que cria. Tem de começar com uma letra minúscula e pode incluir letras minúsculas, números e hífenes.INSTANCE_ID
: o ID da instância que cria.Pode configurar as seguintes opções:
POOL_MODE
. Tem de ser um dos seguintes:session
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
Corpo JSON do pedido:
{
"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"
},
}
}
Veja o estado da partilha de ligações gerida para uma instância
Pode ver o estado da partilha de ligações gerida para uma instância através da consola, da CLI Google Cloud ou da API AlloyDB. Google Cloud
Consola
Aceda à página Clusters.
Clique num cluster na coluna Nome do recurso.
Na página Vista geral, encontre a instância para a qual quer ver o estado da gestão de pools de ligações. O campo Agrupamento de ligações gerido mostra se está ativado ou desativado.
gcloud
Para ver o estado da gestão de pool de ligações para uma instância existente,
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 o seguinte:
INSTANCE_ID
: o nome da instância do AlloyDB para a qual quer modificar as opções de agrupamento de ligações geridas.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.
Se a pool de ligações gerida estiver ativada, é devolvida a seguinte resposta:
True
REST
Para ver o estado da partilha de ligações gerida para a sua instância do AlloyDB, use o seguinte comando e procure connectionPoolConfig
:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster que cria. Tem de começar com uma letra minúscula e pode incluir letras minúsculas, números e hífenes.INSTANCE_ID
: o ID da instância que cria.
Método HTTP e URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Desative a partilha de ligações geridas para uma instância existente
Pode desativar o conjunto de ligações gerido para uma instância existente através da Google Cloud consola, da CLI Google Cloud ou da API AlloyDB.
Consola
Aceda à página Clusters.
Clique num cluster na coluna Nome do recurso.
Na página Vista geral, navegue para Instâncias no seu cluster.
Clique em Editar instância ou Editar conjunto de leitura para a instância que quer desativar a associação gerida.
Em Conjunto de ligações gerido, desmarque a caixa Ativar conjunto de ligações gerido.
Clique em Atualizar instância.
gcloud
Para desativar a pool de ligações gerida para 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 \
--no-enable-connection-pooling
Substitua o seguinte:
INSTANCE_ID
: o nome da instância do AlloyDB para a qual quer desativar a partilha de ligações gerida.PROJECT_ID
: o ID do projeto.REGION_ID
: o ID da região.CLUSTER_ID
: o ID do cluster.
REST
Para desativar a pool de ligações gerida para uma instância de pool de leitura existente,
use o seguinte comando e defina connectionPoolConfig
como false
:
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
PROJECT_ID
: o ID do projeto.LOCATION_ID
: o ID da região do cluster.CLUSTER_ID
: o ID do cluster que cria. Tem de começar com uma letra minúscula e pode incluir letras minúsculas, números e hífenes.INSTANCE_ID
: o ID da instância que cria.
Método HTTP e URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{
"connectionPoolConfig": {
"enabled": false
}
}
Monitorize a partilha de ligações gerida
O AlloyDB fornece as seguintes métricas para ajudar a monitorizar o funcionamento do conjunto de ligações gerido na sua instância. Pode ver estas métricas através do Explorador de métricas.
Nome da métrica | Descrição |
---|---|
Número de pools de ligações/database/conn_pool/num_pools |
O número total de conjuntos de ligações por base de dados. |
Ligações de clientes/database/conn_pool/client_connections |
Monitoriza o número de associações de clientes agrupadas pelo estado da associação de clientes por base de dados. Os estados
incluídos nesta métrica são:
|
Associações de servidor/database/conn_pool/server_connections |
Monitoriza o número de ligações ao servidor agrupadas pelo estado da ligação ao servidor por base de dados. Os estados
incluídos nesta métrica são:
|
Tempo de espera médio/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 microsegundos por base de dados. |
Para mais informações, consulte o artigo Métricas do AlloyDB.
Limitações
As seguintes limitações aplicam-se durante a versão de pré-visualização e estão sujeitas a alterações ou remoção após a versão de disponibilidade geral ou posteriormente:
- A gestão de pools de ligações não suporta a ligação ao proxy de autenticação do AlloyDB nem aos conectores de linguagem do AlloyDB.
- Se usar a pool de ligações gerida no modo de pool de transações,
as seguintes funcionalidades SQL não são suportadas:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
tabelas temporáriasLOAD
- Bloqueios consultivos ao nível da sessão
- Planos preparados ao nível do protocolo
- A partilha de ligações gerida não é suportada para ligações de IP público.