Questa pagina descrive come attivare, connettersi e monitorare il pooling di connessioni gestito in AlloyDB per PostgreSQL. Il pool di connessioni gestito è un pattern di progettazione che ottimizza la gestione delle connessioni al database mantenendo un pool di connessioni prestabilite. Questo pool di connessioni viene riutilizzato dall'applicazione anziché aprire e chiudere le connessioni per ogni operazione del database, il che migliora le prestazioni e l'utilizzo delle risorse.
Utilizzando il pool di connessioni gestito, puoi scalare i carichi di lavoro del database ottimizzando l'utilizzo delle risorse e la latenza della connessione per le istanze AlloyDB. Il pool di connessioni gestito assegna dinamicamente le connessioni server alle richieste in entrata quando possibile utilizzando il pooling e il multiplexing. Questo approccio migliora le prestazioni, soprattutto per le connessioni scalate, assorbendo i picchi improvvisi di connessione e riutilizzando le connessioni al database esistenti. Anziché connettersi a un database specifico, quando utilizzi il pooling delle connessioni gestite, un'applicazione si connette a un pooler, che fornisce tempi di connessione più brevi e scalabilità per i carichi di lavoro di lettura.
Sebbene tu possa utilizzare il pool di connessioni gestito per qualsiasi carico di lavoro transazionale, il pool di connessioni gestito è più adatto alle applicazioni che contengono più connessioni di breve durata o alle applicazioni che potrebbero subire un aumento improvviso delle connessioni.
Prima di iniziare
Devi connetterti all'istanza utilizzando una connessione diretta. Il pool di connessioni gestito non supporta la connessione con il proxy di autenticazione AlloyDB o i connettori dei linguaggi AlloyDB.
Ruoli obbligatori
Per ottenere l'autorizzazione necessaria per abilitare e utilizzare il pooling delle connessioni gestito, chiedi all'amministratore di concederti il ruolo IAM Cloud AlloyDB Admin (roles/alloydb.admin
) nell'istanza AlloyDB.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene l'autorizzazione
necessaria per
abilitare e utilizzare il pool di connessioni gestito.
alloydb.instances.update
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Opzioni di configurazione avanzate
Il pool di connessioni gestito di AlloyDB supporta le seguenti opzioni di configurazione avanzate del pool. Puoi personalizzare il pooling delle connessioni gestite per soddisfare le esigenze della tua istanza utilizzando queste opzioni di configurazione. Puoi impostare queste configurazioni a livello di istanza utilizzando la consoleGoogle Cloud , gcloud CLI o l'API AlloyDB.
Nome della configurazione | Descrizione |
---|---|
Modalità di connessione ( connection-pooling-pool-mode )
|
Per la modalità di connessione, puoi selezionare transazione (impostazione predefinita) o
sessione.
Transazione ( transaction ):
Raggruppa le connessioni a livello di transazione. Una connessione al server viene assegnata a un client durante una transazione. Al termine della transazione, la connessione al server viene reinserita nel pool. Sessione ( session ):
Raggruppa le connessioni a livello di sessione. Una connessione server viene assegnata al client per tutto il tempo in cui rimane connesso. Dopo la disconnessione del client, la connessione del server viene reinserita nel pool. |
Dimensioni massime del pool ( connection-pooling-max-pool-size )
|
La dimensione massima del pool di connessioni per ogni coppia utente e database. Il valore predefinito è 50 connessioni. |
Dimensioni minime del pool ( connection-pooling-min-pool-size )
|
La dimensione minima del pool di connessioni. Il valore predefinito è 0 connessioni. |
Timeout di connessione client inattivo(sec) ( connection-pooling-client-connection-idle-timeout )
|
Il tempo in cui una connessione client rimane inattiva prima del timeout. Questo valore può variare da 0 a 2.147.483 secondi e il valore predefinito è 0 secondi. |
Timeout di connessione al server inattivo(sec) ( connection-pooling-server-connection-idle-timeout )
|
Il tempo in cui una connessione server rimane inattiva prima del timeout. Questo valore può variare da 0 a 2.147.483 secondi e il valore predefinito è 600 secondi. |
Timeout di attesa della query(sec) ( connection-pooling-query-wait-timeout )
|
Il tempo di attesa di una query prima che scada. Questo valore può variare da 0 a 2.147.483 secondi e il valore predefinito è 120 secondi. |
Istruzioni preparate massime ( connection-pooling-max-prepared-statements )
|
Il numero massimo di comandi di istruzioni preparate inviati nella modalità di pooling delle transazioni. Il valore predefinito è 0. Puoi configurare questo parametro solo utilizzando la console Google Cloud . |
Ignora parametri di avvio ( connection-pooling-ignore-startup-parameters )
|
I parametri che vuoi ignorare e che non vengono monitorati nei pacchetti di avvio per impostazione predefinita. |
Durata del server(sec) ( connection-pooling-server-lifetime )
|
Il tempo massimo in cui una connessione server rimane inutilizzata prima che il pool di connessioni gestite la chiuda. Il valore predefinito è 3600 secondi. |
Per impostazione predefinita, il pool di connessioni gestito avvia le connessioni al server AlloyDB. Quando viene stabilita e autenticata una connessione client, il pool di connessioni gestito potrebbe creare una o più connessioni server in modo che le dimensioni del pool corrispondano alla configurazione scelta. Alla connessione client viene quindi assegnata una connessione server disponibile. Le connessioni al server vengono mantenute finché non vengono chiuse esplicitamente o rimangono inattive per un periodo di tempo superiore al timeout di connessione server inattivo.
Abilita il pool di connessioni gestito
Puoi attivare il pool di connessioni gestito per qualsiasi istanza esistente o nuova.
Abilita per una nuova istanza primaria
Per creare una nuova istanza primaria con il pool di connessioni gestito abilitato, consulta Creare un'istanza primaria. Puoi abilitare il pooling di connessioni gestito per un'istanza utilizzando la consoleGoogle Cloud , Google Cloud CLI o l'API AlloyDB.
Abilitare per una nuova istanza del pool di lettura
Per creare una nuova istanza del pool di lettura con il pool di connessioni gestito abilitato, consulta la sezione Creazione di un'istanza del pool di lettura. Puoi abilitare il pooling di connessioni gestito per un'istanza utilizzando la consoleGoogle Cloud , Google Cloud CLI o l'API AlloyDB.
Abilitare per un'istanza esistente
Puoi attivare il pooling delle connessioni gestito per un'istanza esistente utilizzando la consoleGoogle Cloud , Google Cloud CLI o l'API AlloyDB.
Console
Vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Panoramica, vai a Istanze nel tuo cluster.
Fai clic su Modifica principale o Modifica pool di lettura.
Nella sezione Pool di connessioni gestito, seleziona la casella Abilita pool di connessioni gestito.
(Facoltativo) Per configurare le opzioni di pooling delle connessioni gestite, fai clic su Opzioni avanzate di pooling.
Puoi personalizzare le opzioni di pooling delle connessioni gestito per soddisfare le esigenze della tua istanza. Per ulteriori informazioni, consulta Opzioni di configurazione avanzate.
Fai clic su Salva modifiche.
gcloud
Per abilitare il pool di connessioni gestito per un'istanza di pool di lettura o primaria esistente, utilizza il seguente 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
Sostituisci quanto segue:
INSTANCE_ID
: l'ID dell'istanza AlloyDB per cui vuoi attivare il pool di connessioni gestito.PROJECT_ID
: l'ID del progettoREGION_ID
: l'ID della regione.CLUSTER_ID
: l'ID del cluster.
Dopo aver abilitato il pool di connessioni gestito, puoi personalizzare le opzioni del pool di connessioni gestito per soddisfare le esigenze della tua istanza impostando le opzioni di configurazione avanzate. Per ulteriori informazioni su come impostare le opzioni di configurazione, consulta Modificare il pool di connessioni gestito per un'istanza.
REST
Per abilitare il pooling di connessioni gestito per un'istanza di pool primario o di lettura esistente, utilizza il seguente comando e imposta connectionPoolConfig
:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del progettoLOCATION_ID
: l'ID della regione del cluster.CLUSTER_ID
: l'ID del cluster. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.INSTANCE_ID
: l'ID dell'istanza
Metodo HTTP e URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"connectionPoolConfig": {
"enabled": true
}
}
Connettersi al pool di connessioni gestito
La connessione al pool di connessioni gestito è identica alle connessioni dirette al database, tranne che su una porta diversa. Il pool di connessioni gestito è in ascolto sulla porta 6432. Qualsiasi utente aggiunto all'istanza AlloyDB può connettersi utilizzando il pool di connessioni gestito.
Connettersi utilizzando l'autenticazione integrata
L'esempio di comando connette l'istanza AlloyDB al pool di connessioni gestito utilizzando l'autenticazione integrata.
psql postgresql://USERNAME:PASSWORD@IP_ADDRESS:6432/postgres
Connessione tramite connessioni SSL
La modalità SSL dell'istanza si applica anche a tutte le connessioni al pool di connessioni gestito. Per impostazione predefinita, vengono accettate solo le connessioni SSL. Per consentire connessioni non criptate, utilizza il seguente comando gcloud alloydb instances update
per impostare la modalità SSL dell'istanza su 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 il pool di connessioni gestito per un'istanza
Dopo aver abilitato il pool di connessioni gestito, puoi personalizzare le opzioni del pool di connessioni gestito in base alle esigenze della tua istanza utilizzando le opzioni di configurazione avanzate. Queste opzioni di configurazione sono chiamate flag di pooling delle connessioni gestite. Per ulteriori informazioni sulle opzioni di configurazione, sui valori predefiniti e sugli intervalli, consulta Opzioni di configurazione avanzate.
Puoi modificare le opzioni di configurazione del pool di connessioni gestito per un'istanza esistente utilizzando la console Google Cloud , Google Cloud CLI o l'API AlloyDB.
Console
Vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Panoramica, vai a Istanze nel tuo cluster.
Fai clic su Modifica istanza o Modifica pool di lettura per l'istanza che vuoi modificare.
Nella sezione Pool di connessioni gestito, espandi Opzioni avanzate di pooling.
Modifica le opzioni avanzate di pooling che vuoi aggiornare. Puoi modificare le seguenti opzioni:
- Modalità di connessione
- Dimensioni massime del pool
- Dimensioni minime del pool
- Connessioni massime dei client
- Timeout di connessione client inattivo
- Timeout di connessione al server inattivo(sec)
- Timeout di attesa query(sec)
- Istruzioni preparate massime
- Ignora parametri di avvio
- Durata del server(sec)
Fai clic su Aggiorna istanza.
gcloud
Per modificare le opzioni di configurazione del pool di connessioni gestito per un'istanza esistente, utilizza il seguente 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 \
}
Sostituisci quanto segue:
INSTANCE_ID
: il nome dell'istanza AlloyDB per cui vuoi disattivare il pool di connessioni gestito.PROJECT_ID
: l'ID del progettoREGION_ID
: l'ID della regione.CLUSTER_ID
: l'ID del cluster.Puoi configurare le seguenti opzioni:
--connection-pooling-pool-mode
. Deve esseresession
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-server-lifetime
--connection-pooling-client-connection-idle-timeout
REST
Per modificare le opzioni di configurazione del pooling di connessioni gestito per un'istanza
del pool di lettura esistente, utilizza il seguente comando e imposta connectionPoolConfig
:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del progettoLOCATION_ID
: l'ID della regione del cluster.CLUSTER_ID
: l'ID del cluster che crei. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.INSTANCE_ID
: l'ID dell'istanza che crei.Puoi configurare le seguenti opzioni:
POOL_MODE
. Deve esseresession
otransaction
.MAX_POOL_SIZE
MIN_POOL_SIZE
MAX_CLIENT_CONNECTION
SERVER_IDLE_TIMEOUT
QUERY_WAIT_TIMEOUT
IGNORE_STARTUP_PARAMETERS
Metodo HTTP e URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"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"
},
}
}
Visualizza lo stato del pool di connessioni gestito per un'istanza
Puoi visualizzare lo stato del pool di connessioni gestito per un'istanza utilizzando la console Google Cloud , Google Cloud CLI o l'API AlloyDB.
Console
Vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Panoramica, trova l'istanza per cui vuoi visualizzare lo stato del pool di connessioni gestito. Il campo Pool di connessioni gestito mostra se è abilitato o disabilitato.
gcloud
Per visualizzare lo stato del pool di connessioni gestito per un'istanza esistente,
utilizza il seguente 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)"
Sostituisci quanto segue:
INSTANCE_ID
: il nome dell'istanza AlloyDB per cui vuoi modificare le opzioni di pooling delle connessioni gestite.PROJECT_ID
: l'ID del progettoREGION_ID
: l'ID della regione.CLUSTER_ID
: l'ID del cluster.
Se il pool di connessioni gestito è abilitato, viene restituita la seguente risposta:
True
REST
Per visualizzare lo stato del pooling di connessioni gestito per la tua istanza AlloyDB, utilizza il seguente comando e cerca connectionPoolConfig
:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del progettoLOCATION_ID
: l'ID della regione del cluster.CLUSTER_ID
: l'ID del cluster che crei. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.INSTANCE_ID
: l'ID dell'istanza che crei.
Metodo HTTP e URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Disabilitare il pool di connessioni gestito per un'istanza esistente
Puoi disattivare il pool di connessioni gestito per un'istanza esistente utilizzando la consoleGoogle Cloud , Google Cloud CLI o l'API AlloyDB.
Console
Vai alla pagina Cluster.
Fai clic su un cluster nella colonna Nome risorsa.
Nella pagina Panoramica, vai a Istanze nel tuo cluster.
Fai clic su Modifica istanza o Modifica pool di lettura per l'istanza per cui vuoi disattivare il pool di connessioni gestito.
Nella sezione Pool di connessioni gestito, deseleziona la casella Abilita pool di connessioni gestito.
Fai clic su Aggiorna istanza.
gcloud
Per disabilitare il pool di connessioni gestito per un'istanza esistente, utilizza il
seguente 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
Sostituisci quanto segue:
INSTANCE_ID
: il nome dell'istanza AlloyDB per cui vuoi disattivare il pool di connessioni gestito.PROJECT_ID
: l'ID del progettoREGION_ID
: l'ID della regione.CLUSTER_ID
: l'ID del cluster.
REST
Per disattivare il pooling delle connessioni gestito per un'istanza del pool di lettura esistente,
utilizza il seguente comando e imposta connectionPoolConfig
su false
:
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
PROJECT_ID
: l'ID del progettoLOCATION_ID
: l'ID della regione del cluster.CLUSTER_ID
: l'ID del cluster che crei. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.INSTANCE_ID
: l'ID dell'istanza che crei.
Metodo HTTP e URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{
"connectionPoolConfig": {
"enabled": false
}
}
Monitorare il pool di connessioni gestito
AlloyDB fornisce le seguenti metriche per aiutarti a monitorare il funzionamento del pool di connessioni gestito nella tua istanza. Puoi visualizzare queste metriche utilizzando Metrics Explorer.
Nome metrica | Descrizione |
---|---|
Numero di pool di connessioni/database/conn_pool/num_pools |
Il numero totale di pool di connessioni per database. |
Connessioni client/database/conn_pool/client_connections |
Monitora il numero di connessioni client raggruppate in base allo stato della connessione client per database. Gli stati
inclusi in questa metrica sono:
|
Connessioni server/database/conn_pool/server_connections |
Monitora il numero di connessioni server raggruppate per
stato della connessione server per database. Gli stati
inclusi in questa metrica sono:
|
Tempo di attesa medio/database/conn_pool/client_connections_avg_wait_time |
Il tempo medio trascorso da tutti i client in stato di attesa per un server in microsecondi per database. |
Per ulteriori informazioni, consulta Metriche AlloyDB.
Limitazioni
Durante la release Anteprima si applicano le seguenti limitazioni, che sono soggette a modifiche o rimozione al momento della release GA o successivamente:
- Il pool di connessioni gestito non supporta la connessione con il proxy di autenticazione AlloyDB o i connettori dei linguaggi AlloyDB.
- Se utilizzi il pooling di connessioni gestito nella modalità di pooling delle transazioni,
le seguenti funzionalità SQL non sono supportate:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
tabelle temporaneeLOAD
- Blocchi di avviso a livello di sessione
- Piani preparati a livello di protocollo
- Il pool di connessioni gestito non è supportato per le connessioni IP pubbliche.