Auf dieser Seite wird beschrieben, wie Sie das verwaltete Verbindungspooling in AlloyDB for PostgreSQL aktivieren, eine Verbindung herstellen und überwachen. Das Verwaltete Verbindungs-Pooling ist ein Designmuster, das die Verwaltung von Datenbankverbindungen durch die Pflege eines Pools von vorab hergestellten Verbindungen optimiert. Dieser Pool von Verbindungen wird dann von der Anwendung wiederverwendet, anstatt Verbindungen für jeden Datenbankvorgang zu öffnen und zu schließen. Dadurch werden Leistung und Ressourcennutzung verbessert.
Mit dem verwalteten Verbindungs-Pooling können Sie Ihre Datenbanklasten skalieren, indem Sie die Ressourcennutzung und die Verbindungslatenz für Ihre AlloyDB-Instanzen optimieren. Beim verwalteten Verbindungs-Pooling werden eingehende Anfragen nach Möglichkeit mithilfe von Pooling und Multiplexing dynamisch Serververbindungen zugewiesen. Dieser Ansatz führt zu Leistungsverbesserungen, insbesondere bei skalierten Verbindungen, da plötzliche Verbindungsspitzen abgefangen und vorhandene Datenbankverbindungen wiederverwendet werden. Anstatt eine Verbindung zu einer bestimmten Datenbank herzustellen, verbindet sich eine Anwendung bei Verwendung des verwalteten Verbindungs-Poolings mit einem Pooler. Dies führt zu kürzeren Verbindungszeiten und Skalierbarkeit für Ihre Leselasten.
Sie können das verwaltete Verbindungs-Pooling für jede Transaktionslast verwenden. Es eignet sich jedoch am besten für Anwendungen mit mehr kurzlebigen Verbindungen oder Anwendungen, bei denen es zu einem Verbindungsanstieg kommen kann.
Hinweise
Sie müssen eine direkte Verbindung zu Ihrer Instanz herstellen. Das verwaltete Verbindungs-Pooling unterstützt keine Verbindung mit dem AlloyDB Auth-Proxy oder AlloyDB Language Connectors.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud AlloyDB Admin (roles/alloydb.admin
) für die AlloyDB-Instanz zuzuweisen, um die Berechtigung zum Aktivieren und Verwenden des verwalteten Verbindungspools zu erhalten.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigung
, die zum Aktivieren und Verwenden des verwalteten Verbindungspools erforderlich ist.
alloydb.instances.update
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Erweiterte Konfigurationsoptionen
Der verwaltete AlloyDB-Verbindungspool unterstützt die folgenden erweiterten Konfigurationsoptionen für das Pooling. Mit diesen Konfigurationsoptionen können Sie das verwaltete Verbindungs-Pooling an die Anforderungen Ihrer Instanz anpassen. Sie können diese Konfigurationen auf Instanzebene über die Google Cloud Console, die gcloud CLI oder die AlloyDB API festlegen.
Konfigurationsname | Beschreibung |
---|---|
Verbindungsmodus ( connection-pooling-pool-mode )
|
Als Verbindungsmodus können Sie entweder „Transaktion“ (Standard) oder „Sitzung“ auswählen.
Transaktion ( transaction ):
Hier werden Verbindungen auf Transaktionsebene zusammengefasst. Eine Serververbindung wird einem Client während einer Transaktion zugewiesen. Nach Abschluss der Transaktion wird die Serververbindung wieder in den Pool zurückgegeben. Sitzung ( session ):
Hier werden Verbindungen auf Sitzungsebene zusammengefasst. Dem Client wird während der gesamten Verbindungsdauer eine Serververbindung zugewiesen. Nachdem die Clientverbindung getrennt wurde, wird die Serververbindung wieder in den Pool aufgenommen. |
Maximale Poolgröße ( connection-pooling-max-pool-size )
|
Die maximale Größe des Verbindungspools. Der Standardwert ist 50 Verbindungen. |
Minimale Poolgröße ( connection-pooling-min-pool-size )
|
Die Mindestgröße des Verbindungspools. Der Standardwert ist 0 Verbindungen. |
Zeitüberschreitung(en) bei inaktiven Clientverbindungen ( connection-pooling-client-connection-idle-timeout )
|
Die Zeit, in der eine Clientverbindung inaktiv bleibt, bevor sie das Zeitlimit überschreitet. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 0 Sekunden. Sie können diesen Parameter nur über die Google Cloud Console konfigurieren. |
Zeitüberschreitung(en) bei inaktiven Serververbindungen ( connection-pooling-server-connection-idle-timeout )
|
Die Zeit, in der eine Serververbindung inaktiv bleibt, bevor eine Zeitüberschreitung auftritt. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert ist 600 Sekunden. |
Zeitüberschreitung(Sek.) bei Abfragewartezeit ( connection-pooling-query-wait-timeout )
|
Die Zeit, die eine Abfrage wartet, bis das Zeitlimit überschritten wird. Dieser Wert kann zwischen 0 und 2.147.483 Sekunden liegen. Der Standardwert beträgt 120 Sekunden. |
Maximale Anzahl vorbereiteter Anweisungen ( connection-pooling-max-prepared-statements )
|
Die maximale Anzahl von Befehlen für vorbereitete Anweisungen, die im Transaktions-Pooling-Modus gesendet werden. Der Standardwert ist 0. |
Startparameter ignorieren ( connection-pooling-ignore-startup-parameters )
|
Die Parameter, die ignoriert werden sollen und standardmäßig nicht in Startpaketen erfasst werden. |
Serverlebensdauer(n) ( connection-pooling-server-lifetime )
|
Die maximale Zeit, in der eine Serververbindung nicht verwendet wird, bevor sie vom verwalteten Verbindungs-Pooling geschlossen wird. Der Standardwert beträgt 3.600 Sekunden. Sie können diesen Parameter nur über die Google Cloud Console konfigurieren. |
Standardmäßig werden über das verwaltete Verbindungspoolen Verbindungen zum AlloyDB-Server initiiert. Wenn eine Clientverbindung hergestellt und authentifiziert wird, werden beim verwalteten Verbindungs-Pooling möglicherweise eine oder mehrere Serververbindungen erstellt, damit die Größe des Pools der ausgewählten Konfiguration entspricht. Der Clientverbindung wird dann eine verfügbare Serververbindung zugewiesen. Serververbindungen werden aufrechterhalten, bis sie explizit geschlossen werden oder länger als die Zeitüberschreitung für inaktive Serververbindungen inaktiv sind.
Verwaltetes Verbindungs-Pooling aktivieren
Sie können das verwaltete Verbindungs-Pooling für alle vorhandenen oder neuen Instanzen aktivieren.
Für eine neue primäre Instanz aktivieren
Informationen zum Erstellen einer neuen primären Instanz mit aktiviertem verwaltetem Verbindungs-Pooling finden Sie unter Primäre Instanz erstellen. Sie können das verwaltete Verbindungs-Pooling für eine Instanz über die Google Cloud Console, die Google Cloud CLI oder die AlloyDB API aktivieren.
Für eine neue Lesepoolinstanz aktivieren
Eine neue Lesepoolinstanz mit aktiviertem verwalteten Verbindungs-Pooling erstellen Sie unter Lesepoolinstanz erstellen. Sie können das verwaltete Verbindungs-Pooling für eine Instanz über die Google Cloud Console, die Google Cloud CLI oder die AlloyDB API aktivieren.
Für eine vorhandene Instanz aktivieren
Sie können das verwaltete Verbindungs-Pooling für eine vorhandene Instanz mit der Google Cloud Console, der Google Cloud CLI oder der AlloyDB API aktivieren.
Console
Rufen Sie die Seite Cluster auf.
Klicken Sie in der Spalte Ressourcenname auf einen Cluster.
Gehen Sie auf der Seite Übersicht zu Instanzen in Ihrem Cluster.
Klicken Sie auf Primär bearbeiten oder Lesepool bearbeiten.
Klicken Sie unter Verwalteter Verbindungspool auf das Kästchen Verwalteten Verbindungspool aktivieren.
Optional: Klicken Sie auf Erweiterte Pooling-Optionen, um Optionen für das verwaltete Verbindungs-Pooling zu konfigurieren.
Sie können die Optionen für das verwaltete Verbindungspooling an die Anforderungen Ihrer Instanz anpassen. Weitere Informationen finden Sie unter Erweiterte Konfigurationsoptionen.
Klicken Sie auf Änderungen speichern.
gcloud
Verwenden Sie den folgenden gcloud alpha alloydb instances update
-Befehl, um das verwaltete Verbindungs-Pooling für eine vorhandene Instanz eines primären oder Lesepools zu aktivieren:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--enable-connection-pooling
Ersetzen Sie Folgendes:
INSTANCE_ID
: die ID der AlloyDB-Instanz, für die Sie das verwaltete Verbindungs-Pooling aktivieren möchten.PROJECT_ID
: die ID des Projekts.REGION_ID
: die ID der Region.CLUSTER_ID
: die ID des Clusters.
Nachdem Sie den verwalteten Verbindungspool aktiviert haben, können Sie die Optionen für den verwalteten Verbindungspool an die Anforderungen Ihrer Instanz anpassen. Dazu müssen Sie die erweiterten Konfigurationsoptionen festlegen. Weitere Informationen zum Festlegen der Konfigurationsoptionen finden Sie unter Verwaltetes Verbindungspooling für eine Instanz ändern.
REST
Wenn Sie das verwaltete Verbindungs-Pooling für eine vorhandene Instanz eines primären oder Lesepools aktivieren möchten, verwenden Sie den folgenden Befehl und legen Sie connectionPoolConfig
fest:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: die ID des Projekts.LOCATION_ID
: Die ID der Region des Clusters.CLUSTER_ID
: die ID des Clusters. Er muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.INSTANCE_ID
: Die ID der Instanz
HTTP-Methode und URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"connectionPoolConfig": {
"enabled": true
}
}
Verbindung zum verwalteten Verbindungs-Pooling herstellen
Die Verbindung mit einem verwalteten Verbindungspool entspricht einer direkten Datenbankverbindung, mit Ausnahme des Ports. Das verwaltete Verbindungs-Pooling überwacht Port 6432. Jeder Nutzer, der der AlloyDB-Instanz hinzugefügt wurde, kann eine Verbindung über das verwaltete Verbindungspool verwenden.
Über die integrierte Authentifizierung eine Verbindung herstellen
Im Befehlsbeispiel wird Ihre AlloyDB-Instanz über die integrierte Authentifizierung mit dem verwalteten Verbindungspool verbunden.
psql postgresql://USERNAME:PASSWORD@IP_ADDRESS:6432/postgres
Verbindung über SSL-Verbindungen herstellen
Der SSL-Modus der Instanz gilt auch für alle Verbindungen zum verwalteten Verbindungspool. Standardmäßig werden nur SSL-Verbindungen akzeptiert. Wenn Sie unverschlüsselte Verbindungen zulassen möchten, verwenden Sie den folgenden Befehl gcloud alloydb instances update
, um den SSL-Modus der Instanz auf ALLOW_UNENCRYPTED_AND_ENCRYPTED
festzulegen.
gcloud alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED
Verwaltetes Verbindungs-Pooling für eine Instanz ändern
Nachdem Sie das verwaltete Verbindungspooling aktiviert haben, können Sie die Optionen für das verwaltete Verbindungspooling mithilfe der erweiterten Konfigurationsoptionen an die Anforderungen Ihrer Instanz anpassen. Diese Konfigurationsoptionen werden als Flags für das verwaltete Verbindungs-Pooling bezeichnet. Weitere Informationen zu den Konfigurationsoptionen, ihren Standardwerten und ihren Bereichen finden Sie unter Erweiterte Konfigurationsoptionen.
Sie können die Konfigurationsoptionen für das verwaltete Verbindungspooling für eine vorhandene Instanz über die Google Cloud Console, die Google Cloud CLI oder die AlloyDB API ändern.
Console
Rufen Sie die Seite Cluster auf.
Klicken Sie in der Spalte Ressourcenname auf einen Cluster.
Gehen Sie auf der Seite Übersicht zu Instanzen in Ihrem Cluster.
Klicken Sie für die Instanz, die Sie ändern möchten, auf Instanz bearbeiten oder Lesepool bearbeiten.
Maximieren Sie unter Verwalteter Verbindungspool die Option Erweiterte Pooling-Optionen.
Ändern Sie die erweiterten Pooling-Optionen, die Sie aktualisieren möchten. Sie können die folgenden Optionen ändern:
- Verbindungsmodus
- Maximale Poolgröße
- Minimale Poolgröße
- Maximale Anzahl von Clientverbindungen
- Zeitüberschreitung(en) bei inaktiven Clientverbindungen
- Zeitüberschreitung(en) bei inaktiven Serververbindungen
- Zeitüberschreitung(en) für Abfragewartezeit
- Maximale Anzahl vorbereiteter Anweisungen
- Startparameter ignorieren
- Serverlebensdauer(n)
Klicken Sie auf Instanz aktualisieren.
gcloud
Verwenden Sie den folgenden gcloud alpha alloydb instances update
-Befehl, um die Konfigurationsoptionen für das verwaltete Verbindungs-Pooling für eine vorhandene Instanz zu ändern:
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 \
}
Ersetzen Sie Folgendes:
INSTANCE_ID
: Name der AlloyDB-Instanz, für die Sie das verwaltete Verbindungs-Pooling deaktivieren möchten.PROJECT_ID
: die ID des Projekts.REGION_ID
: die ID der Region.CLUSTER_ID
: die ID des Clusters.Sie können folgende Optionen konfigurieren:
--connection-pooling-pool-mode
. Musssession
odertransaction
sein.--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
Wenn Sie die Konfigurationsoptionen für das verwaltete Verbindungspooling für eine vorhandene Instanz des Lesepools ändern möchten, verwenden Sie den folgenden Befehl und legen Sie connectionPoolConfig
fest:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: die ID des Projekts.LOCATION_ID
: Die ID der Region des Clusters.CLUSTER_ID
: die ID des von Ihnen erstellten Clusters. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.INSTANCE_ID
: die ID der von Ihnen erstellten Instanz.Sie können folgende Optionen konfigurieren:
POOL_MODE
. Musssession
odertransaction
sein.MAX_POOL_SIZE
MIN_POOL_SIZE
MAX_CLIENT_CONNECTION
SERVER_IDLE_TIMEOUT
QUERY_WAIT_TIMEOUT
IGNORE_STARTUP_PARAMETERS
HTTP-Methode und URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"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"
},
}
}
Status des verwalteten Verbindungs-Poolings für eine Instanz aufrufen
Sie können den Status des verwalteten Verbindungspools für eine Instanz mit der Google Cloud Console, der Google Cloud CLI oder der AlloyDB API aufrufen.
Console
Rufen Sie die Seite Cluster auf.
Klicken Sie in der Spalte Ressourcenname auf einen Cluster.
Suchen Sie auf der Seite Übersicht nach der Instanz, für die Sie den Status des verwalteten Verbindungs-Poolings aufrufen möchten. Im Feld Verwalteter Verbindungspool sehen Sie, ob die Funktion aktiviert oder deaktiviert ist.
gcloud
Verwenden Sie den folgenden gcloud alpha alloydb instances describe
-Befehl, um den Status des verwalteten Verbindungspools für eine vorhandene Instanz aufzurufen:
gcloud alpha alloydb instances describe INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--format="value(connectionPoolConfig.enabled)"
Ersetzen Sie Folgendes:
INSTANCE_ID
: der Name der AlloyDB-Instanz, für die Sie die Optionen für das verwaltete Verbindungs-Pooling ändern möchten.PROJECT_ID
: die ID des Projekts.REGION_ID
: die ID der Region.CLUSTER_ID
: die ID des Clusters.
Wenn das verwaltete Verbindungs-Pooling aktiviert ist, wird die folgende Antwort zurückgegeben:
True
REST
Führen Sie den folgenden Befehl aus, um den Status des verwalteten Verbindungspools für Ihre AlloyDB-Instanz aufzurufen, und suchen Sie nach connectionPoolConfig
:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: die ID des Projekts.LOCATION_ID
: Die ID der Region des Clusters.CLUSTER_ID
: die ID des von Ihnen erstellten Clusters. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.INSTANCE_ID
: die ID der von Ihnen erstellten Instanz.
HTTP-Methode und URL:
GET https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
Verwaltetes Verbindungs-Pooling für eine vorhandene Instanz deaktivieren
Sie können das verwaltete Verbindungs-Pooling für eine vorhandene Instanz über die Google Cloud Console, die Google Cloud CLI oder die AlloyDB API deaktivieren.
Console
Rufen Sie die Seite Cluster auf.
Klicken Sie in der Spalte Ressourcenname auf einen Cluster.
Gehen Sie auf der Seite Übersicht zu Instanzen in Ihrem Cluster.
Klicken Sie für die Instanz, für die Sie die Verbindung zum verwalteten Pooling deaktivieren möchten, auf Instanz bearbeiten oder Lesepool bearbeiten.
Entfernen Sie unter Verwalteter Verbindungspool das Häkchen bei Verwalteten Verbindungspool aktivieren.
Klicken Sie auf Instanz aktualisieren.
gcloud
Verwenden Sie den folgenden Befehl gcloud alpha alloydb instances update
, um das verwaltete Verbindungs-Pooling für eine vorhandene Instanz zu deaktivieren:
gcloud alpha alloydb instances update INSTANCE_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--no-enable-connection-pooling
Ersetzen Sie Folgendes:
INSTANCE_ID
: der Name der AlloyDB-Instanz, für die Sie das verwaltete Verbindungs-Pooling deaktivieren möchten.PROJECT_ID
: die ID des Projekts.REGION_ID
: die ID der Region.CLUSTER_ID
: die ID des Clusters.
REST
Wenn Sie das verwaltete Verbindungs-Pooling für eine vorhandene Instanz des Lesepools deaktivieren möchten, verwenden Sie den folgenden Befehl und setzen Sie connectionPoolConfig
auf false
:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
: die ID des Projekts.LOCATION_ID
: Die ID der Region des Clusters.CLUSTER_ID
: die ID des von Ihnen erstellten Clusters. Sie muss mit einem Kleinbuchstaben beginnen und darf Kleinbuchstaben, Ziffern und Bindestriche enthalten.INSTANCE_ID
: die ID der von Ihnen erstellten Instanz.
HTTP-Methode und URL:
PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
JSON-Text anfordern:
{
"connectionPoolConfig": {
"enabled": false
}
}
Verwaltetes Verbindungs-Pooling überwachen
AlloyDB bietet die folgenden Messwerte, mit denen Sie die Ausführung des verwalteten Verbindungs-Poolings auf Ihrer Instanz im Blick behalten können. Sie können diese Messwerte im Metrics Explorer aufrufen.
Messwertname | Beschreibung |
---|---|
Anzahl der Verbindungspools/database/conn_pool/num_pools |
Die Gesamtzahl der Verbindungspools pro Datenbank. |
Clientverbindungen/database/conn_pool/client_connections |
Die Anzahl der Clientverbindungen, gruppiert nach Status der Clientverbindung pro Datenbank. Zu den Status, die in diesem Messwert enthalten sind, gehören:
|
Serververbindungen/database/conn_pool/server_connections |
Die Anzahl der Serververbindungen wird nach dem Status der Serververbindung pro Datenbank erfasst. Zu den Status, die in diesem Messwert enthalten sind, gehören:
|
Durchschnittliche Wartezeit/database/conn_pool/client_connections_avg_wait_time |
Die durchschnittliche Zeit, die alle Clients im Wartestatus für einen Server in Mikrosekunden pro Datenbank verbringen. |
Weitere Informationen finden Sie unter AlloyDB-Messwerte.
Beschränkungen
Die folgenden Einschränkungen gelten während der Vorabversion und können nach der Veröffentlichung der GA-Version geändert oder entfernt werden:
- Das verwaltete Verbindungs-Pooling unterstützt keine Verbindung mit dem AlloyDB Auth-Proxy oder AlloyDB-Sprach-Connectors.
- Wenn Sie das verwaltete Verbindungspooling im Transaktions-Pooling-Modus verwenden, werden die folgenden SQL-Funktionen nicht unterstützt:
SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
Temporäre TabellenLOAD
- Warnende Sperren auf Sitzungsebene
- Auf Protokollebene erstellte Pläne