È stato pubblicato il primo rilascio di pgbalancer, un bilanciatore di carico PostgreSQL basato su intelligenza artificiale con REST API e MQTT. Pgbalancer gestisce il pooling delle connessioni e il bilanciamento del carico per PostgreSQL, controllato tramite protocollo HTTP e supporta la trasmissione di eventi in tempo reale. Il progetto è stato creato come fork di pgpool-II, con importanti miglioramenti per l'instradamento intelligente delle richieste. Il codice è scritto in C e distribuito sotto licenza aperta PostgreSQL.
Funzionalità e caratteristiche principali:
- Pooling delle connessioni e bilanciamento del carico.
- Failover automatico con supporto per un timer di controllo (watchdog).
- Monitoraggio della disponibilità e caching delle richieste.
- Autenticazione SSL/TLS, PAM/LDAP.
- Compatibilità con PostgreSQL 13-18.
- È parte degli strumenti pgElephant, che forniscono alta disponibilità. Può integrarsi con pgraft per un consenso Raft, supportato dal monitoraggio 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.
- Lo stato viene valutato in tempo reale e il bilanciamento delle richieste viene previsto.
- Parametri di peso configurabili per la velocità di apprendimento e la velocità di previsione di eventi casuali.
- Possibilità di integrazione con le piattaforme di monitoraggio Prometheus e Grafana.
Gestione tramite REST API.
- 17 funzioni HTTP/JSON per una gestione completa del cluster.
- Integrato server API, in esecuzione sulla porta 8080.
- Autenticazione tramite token JWT HMAC-SHA256.
- Ottenimento di statistiche e metriche sullo stato della modalità di esecuzione.
- Tempo di risposta inferiore a 10 ms.
Trasmissione di eventi in streaming MQTT.
- MQTT viene utilizzato per pubblicare modifiche allo stato dei nodi, failover e controlli sullo 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 notifiche automatiche per eventi anomali e offre un canale di trasporto per l'orchestrazione del cluster.
- Strumento da linea di comando bctl:
- Interfaccia unica che sostituisce oltre 10 comandi separati "pcp_*".
- 3 formati di output: tabelle, JSON o formato invariato.
- Output delle tabelle formattate con delimitazione per i dati runtime di pgbalancer.
- Controllo remoto e modalità di output avanzato.
- Workflow di GitHub Actions:
- build-matrix.yml: Build 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 per Autotools con integrazione autoreconf
- docs.yml: Distribuzione della documentazione su GitHub Pages.
Fonte: opennet.ru
