Den första versionen av pgbalancer, en AI-baserad lastbalanserare för PostgreSQL med REST API och MQTT, har publicerats. Pgbalancer tillhandahÄller anslutningspoolhantering och lastbalansering för PostgreSQL, styrs via HTTP-protokollet och stödjer realtids hÀndelseströmning. Projektet skapades som en fork av pgpool-II med betydande förbÀttringar för smart routing av förfrÄgningar. Koden Àr skriven i C och distribueras under PostgreSQL:s öppna licens.
Huvudfunktioner och egenskaper:
- Anslutningspool och lastbalansering.
- Automatisk övervakning av misslyckanden med stöd för en watchdog-timer.
- Ăvervakning av tillgĂ€nglighet och caching av förfrĂ„gningar.
- SSL/TLS, PAM/LDAP autentisering.
- Kompatibilitet med PostgreSQL 13-18.
- Ăr en del av pgElephant-verktygen som sĂ€kerstĂ€ller hög tillgĂ€nglighet. Kan integreras med pgraft för Raft-konsensus, stödjer pgSentinel-övervakning.
- AI-baserad lastbalansering.
- MaskininlÀrningsalgoritmer för smart routing av förfrÄgningar.
- InlÀrningen justeras baserat pÄ svarstid för förfrÄgningar och resursstatus. servern.
- Status bedöms i realtid och lastbalansering av förfrÄgningar förutsÀgs.
- Konfigurerbara viktparametrar för inlÀrningshastighet och hastighet av random hÀndelseförutsÀgelser.
- Möjlighet till integration med övervakningsplattformar som Prometheus och Grafana.
Hantering via REST API.
- 17 HTTP/JSON-funktioner för fullstÀndig hantering av klustret.
- Integrerad server API som körs pÄ port 8080.
- Autentisering med JWT HMAC-SHA256-token.
- InhÀmtning av statistik och mÄtt pÄ körlÀget.
- Svarstid under 10 ms.
HÀndelseströmning via MQTT.
- MQTT anvÀnds för att publicera statusÀndringar för noder, övervakning av misslyckanden och resurskontroll i realtid.
- MQTT-Àmnen kan konfigureras för olika typer av hÀndelser.
- Integration med Mosquitto, EMQX eller valfri MQTT-broker.
- TillhandahÄller automatisk notifiering om avvikande hÀndelser och ger en transportkanal för orkestrering av klustret.
- Kommandoverktyg bctl:
- Ett enhetligt grÀnssnitt som ersÀtter mer Àn 10 separata kommandon "pcp_*".
- 3 utdataformat: tabeller, JSON eller oförÀndrat format.
- Utmatning av formaterade tabeller med inramning för runtime-data i pgbalancer.
- FjÀrrstyrning och avancerat utdatalÀge.
- GitHub Actions Arbetsflöde:
- build-matrix.yml: Byggnader pÄ flera plattformar (Ubuntu, macOS, Rocky Linux).
- Stöd för PostgreSQL 13-18.
- DEB-paket för Ubuntu 22.04/24.04, Debian 11/12.
- RPM-paket för Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Stöd för Autotools med autoreconf-integration.
- docs.yml: Distribution av dokumentation pÄ GitHub Pages.
KĂ€lla: opennet.ru
