DataSunrise sponsert AWS re:Invent 2024 in Las Vegas, bitte besuchen Sie uns am Stand #2158 von DataSunrise

Verbindungspooling mit PgBouncer

Verbindungspooling mit PgBouncer

Die meisten Webanwendungen verwenden Datenbanken zur Speicherung ihrer Daten. Clientanwendungen können die Informationen aus der Datenbank abrufen, indem sie eine Verbindung dazu herstellen. Jede Abfrage verbraucht Ressourcen wie Speicher, Portzuweisung und CPU-Zeit. Eine Transaktion kann Millisekunden dauern, aber eine Verbindung herzustellen kann bis zu mehreren Sekunden dauern.

Um den Prozess der Verbindung zu PostgreSQL zu vereinfachen, insbesondere wenn ein hohes Volumen von Clientverbindungen erwartet wird, können Sie PgBouncer verwenden, um Client-Datenbank-Verbindungen effektiv zu verwalten. Es ist ein beliebter Connection Pooler, der einmal eine Verbindung zur Datenbank herstellt und diese Verbindung dann mehrfach für verschiedene Clients verwendet. Dies ist nicht der einzige Vorteil bei der Verwendung von PgBouncer.

Angenommen, Sie haben 100 Clients, die eine Verbindung zu Ihrer Datenbank herstellen müssen, und Sie möchten das Datenbank-Benutzerpasswort nicht mit diesen Clients teilen. In diesem Fall können Sie PgBouncer verwenden. Sie können individuelle Logins und Passwörter für die Verbindung einrichten, sodass PgBouncer und Clients nicht die Datenbank-Benutzerpasswörter verwenden. Außerdem können Sie einen Aliasnamen für die Datenbank zuweisen, sodass die Clients den echten Namen der Datenbank nicht sehen.

Anstatt eine Datenbankverbindung herzustellen, wird eine Verbindung mit PgBouncer erzeugt, die bereits bestehende Datenbankverbindungen nutzt.

DataSunrise Database Security Suite unterstützt neben vielen anderen Funktionen auch das Pooling mit PgBouncer. Durch eine effektive Arbeit mit der Client-Datenbank-Zuordnung gewährleistet es umfassende Datenbanksicherheit, wenn PgBouncer läuft.

Vorteile der Verwendung von PgBouncer-Verbindungspools:

  • Reduzierung der Verarbeitungszeit
  • Reduzierung des Verbrauchs von Serverressourcen zur Aufrechterhaltung einer großen Anzahl von Serververbindungen zu einer oder mehreren Datenbanken
  • Unterstützung von Online-Neustarts oder -Upgrades, ohne Client-Verbindungen zu unterbrechen
  • Verbergen des echten Namens der Datenbank
  • Die Möglichkeit, das Teilen eines Datenbank-Benutzerpassworts mit allen Clientanwendungen zu vermeiden

Konfiguration von PgBouncer

Nach der Installation funktioniert PgBouncer als Dienst auf Windows und als Daemon auf Linux (in beiden Fällen als pgbouncer bezeichnet).

Um die Konfigurationseinstellungen zu ändern, finden Sie die pgbouncer.ini Datei im folgenden Verzeichnis: pgbouncer/share. Sie enthält die folgenden Parameter:

[database] AbschnittSie können Datenbanken hinzufügen, deren Hosts und Ports definieren, Aliasnamen für die Datenbanken zuweisen und einen Datenbank-Benutzer-Login und Passwort angeben (alle Clients, die über PgBouncer mit dem angegebenen Aliasnamen verbunden sind, verwenden den in diesem Abschnitt angegebenen DB-Benutzer-Login und Passwort).
[pgbouncer] AbschnittGeben Sie IP-Adressen an, die vom PgBouncer-Daemon überwacht werden sollen. Verwenden Sie Listen_addr = *, um alle verfügbaren Adressen zu überwachen.
auth_filePgBouncer ist nicht Teil von PostgreSQL, daher müssen Sie die Liste der Benutzer mit verschlüsselten Passwörtern zur Verbindung mit PgBouncer bereitstellen. Auth_file ist ein Verzeichnispfad zur Datei, die Benutzernamen und Passwörter enthält.
auth_type (md5 | crypt | plain | trust | any) Md5 ist ein Argument für die Verwendung der im auth_file angegebenen Passwörter. Md5 ist standardmäßig eingestellt.
max_client_connDie maximale Anzahl von Clients, die sich mit dem Pool verbinden können (100 standardmäßig).
admin_usersZuweisung von Berechtigungen mit Zugriff auf die Admin-Konsole.
default_pool_sizeZuweisung der maximalen Anzahl von Server-Verbindungen pro Benutzer/Datenbank-Kombination.
reserve_pool_sizeDie maximale Anzahl zusätzlicher Verbindungen, die im Falle eines Problems erlaubt sind.
pool_modeDefiniert den Pooling-Modus: (session) PgBouncer weist eine Server-Verbindung dem Client zu. Wenn die Client-Anwendung die Verbindung trennt, wird die Verbindung zurück in den Pool gestellt. (transaction) PgBouncer weist eine Server-Verbindung der Client-Anwendung zu, bis die Transaktion abgeschlossen ist. (statement) PgBouncer weist für jede Anweisung der Client-Anwendung eine Server-Verbindung zu.

Wie Sie sehen können, bietet PgBouncer eine einfache Lösung zur Verwaltung von Verbindungspools, insbesondere bei der Arbeit mit einer mehrschichtigen Architektur. Durch die Verwendung bestehender Verbindungen eliminiert PgBouncer die Notwendigkeit, für jeden Client eine Datenbankverbindung zu erstellen.

Unsere Entwickler haben die Zuordnungsschemata von PgBouncer gründlich analysiert und die DataSunrise Database Security Suite so konfiguriert, dass sie vollständig neben diesem Connection Pooler funktioniert.

Nächste

Schützen Sie sich mit Datenbanksicherheit in der Cloud

Schützen Sie sich mit Datenbanksicherheit in der Cloud

Erfahren Sie mehr

Benötigen Sie die Hilfe unseres Support-Teams?

Unsere Experten beantworten gerne Ihre Fragen.

Allgemeine Informationen:
[email protected]
Kundenservice und technischer Support:
support.datasunrise.com
Partnerschafts- und Allianz-Anfragen:
[email protected]