Die erste Ausgabe von pgbalancer wurde veröffentlicht, einem AI-gestützten PostgreSQL Lastenausgleicher mit REST API und MQTT. Pgbalancer bietet eine Verbindungspool-Verarbeitung und Lastenausgleich für PostgreSQL, wird über HTTP-Protokolle gesteuert und unterstützt die Echtzeit-Eventübertragung. Das Projekt wurde als Fork von pgpool-II mit erheblichen Verbesserungen für intelligentes Routing von Anfragen erstellt. Der Code ist in C geschrieben und wird unter der PostgreSQL Open-Source-Lizenz verbreitet.
Hauptmerkmale und Funktionen:
- Verbindungspool und Lastenausgleich.
- Automatisches Failover mit Unterstützung des Watchdog-Timers.
- Überwachung der Betriebsfähigkeit und Anfragen-Caching.
- SSL/TLS-Authentifizierung, PAM/LDAP.
- Kompatibilität mit PostgreSQL 13-18.
- Teil der pgElephant-Utilities, die hohe Verfügbarkeit bieten. Kann mit pgraft für Raft-Konsens integriert werden, unterstützt die Überwachung durch pgSentinel.
- Lastenausgleich auf KI-Basis.
- Maschinelles Lernen-Algorithmen für intelligentes Routing von Anfragen.
- Das Training passt sich je nach Reaktionszeit der Anfragen und Ressourcenstatus an. Server.
- Der Zustand wird in Echtzeit bewertet und die Lastenverteilung vorhergesagt.
- Konfigurierbare Gewichtseinstellungen für Lernraten und Raten der zufälligen Vorhersagen.
- Integration mit den Monitoring-Plattformen Prometheus und Grafana.
Verwaltung über die REST API.
- 17 HTTP/JSON-Funktionen für die vollständige Verwaltung des Clusters.
- Integriert der Server API, die an Port 8080 läuft.
- JWT HMAC-SHA256 Token-Authentifizierung.
- Abruf von Statistiken und Metriken des Ausführungsstatus.
- Antwortzeit von unter 10 ms.
Ereignis-Streaming über MQTT.
- MQTT wird verwendet, um Änderungen des Knotenzustands, Failover und Statusprüfungen in Echtzeit zu veröffentlichen.
- MQTT-Themen können für verschiedene Ereignistypen konfiguriert werden.
- Integration mit Mosquitto, EMQX oder jedem MQTT-Broker.
- Stellt automatische Benachrichtigungen über Anomalien bereit und bietet einen Transportkanal zur Orchestrierung des Clusters.
- Befehlzeilen-Tool bctl:
- Einheitliches Interface, das mehr als 10 separate Befehle "pcp_*" ersetzt.
- 3 Ausgabeformate: Tabellen, JSON oder unveränderter Format.
- Ausgabe von formatierten Tabellen mit Rahmen für runtime-Daten des pgbalancer.
- Fernzugriff und erweiterter Ausgabemodus.
- GitHub Actions Workflow:
- build-matrix.yml: Builds auf mehreren Plattformen (Ubuntu, macOS, Rocky Linux).
- Unterstützung für PostgreSQL 13-18.
- DEB-Pakete für Ubuntu 22.04/24.04, Debian 11/12.
- RPM-Pakete für Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Unterstützung für Autotools mit autoreconf-Integration.
- docs.yml: Bereitstellung der Dokumentation auf GitHub Pages.
Quelle: opennet.ru
