De eerste release van pgbalancer is gepubliceerd, een PostgreSQL-loadbalancer op basis van kunstmatige intelligentie met REST API en MQTT. Pgbalancer zorgt voor poolverwerking en load balancing voor PostgreSQL, beheerd via het HTTP-protocol en ondersteunt realtime event-streaming. Het project is ontstaan als een fork van pgpool-II met aanzienlijke verbeteringen voor slimme routebeschikking van aanvragen. De code is geschreven in C en wordt verspreid onder de open PostgreSQL-licentie.
Belangrijkste functionaliteiten en kenmerken:
- Connection pooling en load balancing.
- Automatische failover met ondersteuning voor watchdog-timers.
- Bewaking van functionaliteit en caching van aanvragen.
- SSL/TLS-, PAM-/LDAP-authenticatie.
- Compatibel met PostgreSQL 13-18.
- Maak deel uit van de pgElephant-tools die hoge beschikbaarheid bieden. Kan integreren met pgraft voor Raft-consensus, monitoring via pgSentinel wordt ondersteund.
- Load balancing op basis van AI.
- Machine learning-algoritmes voor slimme routebeschikking van aanvragen.
- Training past zich aan op basis van de responstijden van aanvragen en de status van bronnen. de server.
- De status wordt in realtime beoordeeld en de load balancing van aanvragen wordt voorspeld.
- Aanpasbare gewichtinstellingen voor leersnelheid en snelheid van willekeurige gebeurtenisvoorspellingen.
- Integratiemogelijkheden met monitoringplatforms Prometheus en Grafana.
Beheer via REST API.
- 17 HTTP/JSON-functies voor volledig clusterbeheer.
- Geïntegreerde server API die draait op poort 8080.
- Authenticatie met JWT HMAC-SHA256 tokens.
- Verkrijgen van statistieken en statusmetingen van de uitvoeringsmodus.
- Responstijd van minder dan 10 ms.
Realtime event-streaming via MQTT.
- MQTT wordt gebruikt voor het publiceren van statuswijzigingen van knooppunten, failover en statuschecks van bronnen in realtime.
- MQTT-onderwerpen kunnen worden ingesteld voor verschillende soorten gebeurtenissen.
- Integratie met Mosquitto, EMQX of elke MQTT-broker.
- Biedt automatische meldingen van incidenten en een transportkanaal voor clusterorkestratie.
- De command-line tool bctl:
- Een enkele interface die meer dan 10 afzonderlijke commando's "pcp_*" vervangt.
- 3 uitvoerformaten: tabellen, JSON of ongewijzigde indeling.
- Geformatteerde tabeloutput met omranding voor runtime-gegevens van pgbalancer.
- Afstandelijk beheer en uitgebreide uitvoermodus.
- GitHub Actions Workflow:
- build-matrix.yml: Builds op meerdere platforms (Ubuntu, macOS, Rocky Linux).
- Ondersteuning voor PostgreSQL 13-18.
- DEB-pakketten voor Ubuntu 22.04/24.04, Debian 11/12.
- RPM-pakketten voor Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Ondersteuning voor Autotools met autoreconf-integratie
- docs.yml: Implementatie van documentatie op GitHub Pages.
Bron: opennet.ru
