17 Punkte von xguru 2025-05-08 | 1 Kommentare | Auf WhatsApp teilen
  • Ein in Rust + Tokio geschriebenes Tool für PostgreSQL-Transaktions-Pooling + Sharding + Load Balancing, das Hunderte von Datenbanken und Hunderttausende von Verbindungen effizient verwaltet
  • Arbeitet wie PgBouncer, ist aber ein auf PostgreSQL spezialisierter Proxy der Anwendungsschicht (OSI L7), der Query-Analyse und Replikation unterstützt
  • Lässt sich einfach mit Kubernetes und Docker bereitstellen; von Cluster-Konfiguration über Load Balancing und Replikation bis zur Verwaltung mehrerer Shards ist alles mit einer einzigen Konfiguration möglich
  • Mit eigener Verwaltung für logische Replikation lässt sich ein bestehender PostgreSQL-Cluster ohne Unterbrechung zu einer Sharding-Architektur erweitern

Hauptfunktionen

  • Load Balancing

    • Verteilung des Traffics auf Basis von PostgreSQL-Queries auf OSI Layer 7
    • SELECT wird automatisch an Replikate, INSERT/UPDATE usw. an den Primärknoten weitergeleitet
    • Unterstützte Strategien: Round Robin, Random, Least Active Connections usw.
    • Echtzeit-Health-Checks und automatisches Failover bei Ausfällen
  • Transaktions-Pooling

    • Unterstützt ähnlich wie PgBouncer Pooling auf Session-/Transaktionsebene
    • Kann Hunderttausende Clients mit nur wenigen PostgreSQL-Verbindungen bedienen
  • Sharding und Replikation

    • Extrahiert per SQL-Analyse den Shard Key und leitet Queries automatisch an den passenden Shard weiter
    • Bei Shard-übergreifenden Queries werden Ergebnisse im Speicher kombiniert und als eine einzige Antwort zurückgegeben
    • Auch der COPY-Befehl wird nach Shards aufgeteilt verarbeitet
    • Unterstützt logische Replikation: bestehende DBs können ohne Downtime für Sharding erweitert werden
  • Konfigurationsänderungen in Echtzeit

    • Verwendet PgBouncer-artige .toml-Konfigurationen; Änderungen sind ohne Neustart möglich
    • Konfigurierbar sind Benutzerauthentifizierung, Verbindungen pro Datenbank und Shard-Informationen
  • Monitoring

    • Unterstützt den standardmäßigen PgBouncer-Admin-Port plus OpenMetrics
    • Inklusive Datadog-Integrationsbeispielen und Dashboard

1 Kommentare

 
kaydash 2025-05-08

Wir verwenden patroni in einer Multi-Master-Konfiguration.
Wenn es sich um eine Konfiguration mit vielen Leseanfragen handelt, wäre es wohl einen Versuch wert, es ähnlich wie maxscale einzusetzen.