È stato pubblicato il primo rilascio di pgbalancer, un bilanciatore di carico PostgreSQL basato su intelligenza artificiale con REST API e MQTT. Pgbalancer gestisce il pool di connessioni e il bilanciamento del carico per PostgreSQL, controllato tramite HTTP, e supporta lo streaming di eventi in tempo reale. Il progetto è stato creato come un fork di pgpool-II con significativi miglioramenti per una intelligente instradamento delle richieste. Il codice è scritto in C e distribuito sotto la licenza aperta PostgreSQL.
Caratteristiche principali e funzionalità:
- Pool di connessioni e bilanciamento del carico.
- Failover automatico con supporto per il watchdog.
- Monitoraggio dello stato e caching delle richieste.
- Autenticazione SSL/TLS, PAM/LDAP.
- Compatibilità con PostgreSQL 13-18.
- È parte delle utilità pgElephant, che garantiscono alta disponibilità. Può integrarsi con pgraft per il consenso Raft, supporta il monitoraggio di pgSentinel.
- Bilanciamento del carico basato su AI.
- Algoritmi di machine learning per un instradamento intelligente delle richieste.
- L'apprendimento si adatta in base ai tempi di risposta delle richieste e allo stato delle risorse. server.
- Valutazione dello stato in tempo reale e previsione del bilanciamento delle richieste.
- Parametri di peso configurabili per la velocità di apprendimento e la frequenza di supposizioni su eventi casuali.
- Possibilità di integrazione con le piattaforme di monitoraggio Prometheus e Grafana.
Gestione tramite REST API.
- 17 funzioni HTTP/JSON per un controllo completo del cluster.
- Integrato un server API in esecuzione sulla porta 8080.
- Autenticazione tramite token JWT HMAC-SHA256.
- Ottenere statistiche e metriche di stato della modalità di esecuzione.
- Tempo di risposta inferiore a 10 ms.
Streaming di eventi MQTT.
- MQTT è utilizzato per pubblicare le modifiche allo stato dei nodi, failover e controlli dello stato delle risorse in tempo reale.
- È possibile configurare i topic MQTT per diversi tipi di eventi.
- Integrazione con Mosquitto, EMQX o qualsiasi broker MQTT.
- Fornisce avvisi automatici su eventi anomali e offre un canale di trasporto per l'orchestrazione del cluster.
- Utilità da linea di comando bctl:
- Un'interfaccia unica che sostituisce oltre 10 comandi separati «pcp_*».
- 3 formati di output: tabelle, JSON o formato non modificato.
- Output di tabelle formattate con contorno per i dati di runtime di pgbalancer.
- Gestione remota e modalità di output avanzato.
- GitHub Actions Workflow:
- build-matrix.yml: Costruzioni su più piattaforme (Ubuntu, macOS, Rocky Linux).
- Supporto per PostgreSQL 13-18.
- Pacchetti DEB per Ubuntu 22.04/24.04, Debian 11/12.
- Pacchetti RPM per Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Supporto Autotools con integrazione autoreconf.
- docs.yml: Distribuzione della documentazione GitHub Pages.
Fonte: opennet.ru
