Den første udgave af pgbalancer er blevet offentliggjort, en AI-baseret load balancer til PostgreSQL med REST API og MQTT. Pgbalancer håndterer forbindelsespuljer og lastbalancering for PostgreSQL, styres via HTTP-protokollen og understøtter realtidsbegivenhedsoverførsel. Projektet er skabt som en fork af pgpool-II med betydelige forbedringer til intelligent forespørgselsrouting. Koden er skrevet i C og distribueres under PostgreSQLs åbne licens.
Nøglefunktioner og egenskaber:
- Forbindelsespulje og load balancing.
- Automatisk failover med støtte til watchdog-timer.
- Overvågning af driftsstatus og caching af forespørgsler.
- SSL/TLS, PAM/LDAP autentificering.
- Kompatibilitet med PostgreSQL 13-18.
- En del af pgElephant-værktøjer, der sikrer høj tilgængelighed. Kan integreres med pgraft til Raft-konsensus, overvågning understøttes af pgSentinel.
- AI-baseret load balancing.
- Maskinlæringsalgoritmer til intelligent forespørgselsrouting.
- Træningen tilpasses afhængigt af forespørgselsresponstiden og ressourceforholdene. server.
- Status vurderes i realtid, og forespørgselsbalancering forudses.
- Konfigurerbare vægtparametre for læringshastighed og hastighed ved forudsigelse af tilfældige hændelser.
- Mulighed for integration med overvågningsplatforme som Prometheus og Grafana.
Styring via REST API.
- 17 HTTP/JSON-funktioner til fuld kontrol af klyngen.
- Integreret server API, der kører på port 8080.
- JWT HMAC-SHA256 token autentificering.
- Få statistik og metrikker for driftsstatus.
- Responstid mindre end 10 ms.
MQTT begivenhedsoverførsel.
- MQTT bruges til at offentliggøre ændringer i nodernes status, failover og realtidskontrol af ressourcer.
- MQTT-emner kan konfigureres til forskellige typer begivenheder.
- Integration med Mosquitto, EMQX eller enhver MQTT-broker.
- Giver automatisk varsling om unormale hændelser og leverer en transportkanal til orkestrering af klyngen.
- Kommando-linjewærktøj bctl:
- Et enkelt interface, der erstatter mere end 10 separate 'pcp_*' kommandoer.
- 3 outputformater: tabeller, JSON eller uændret format.
- Visning af formaterede tabeller med indramning for runtime-data fra pgbalancer.
- Fjernstyring og avanceret output-tilstand.
- GitHub Actions Workflow:
- build-matrix.yml: Bygninger på tværs af flere platforme (Ubuntu, macOS, Rocky Linux).
- Understøttelse af PostgreSQL 13-18.
- DEB-pakker til Ubuntu 22.04/24.04, Debian 11/12.
- RPM-pakker til Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Understøttelse af Autotools med integration af autoreconf.
- docs.yml: Udrulning af dokumentation til GitHub Pages.
Kilde: opennet.ru
