A fost publicat primul volum al pgbalancer, un echilibru al sarcinii PostgreSQL bazat pe inteligență artificială cu REST API și MQTT. Pgbalancer asigură gestionarea pool-ului de conexiuni și echilibrarea sarcinii pentru PostgreSQL, fiind controlat prin protocolul HTTP și suportând transmisia de evenimente în timp real. Proiectul a fost creat ca un fork al pgpool-II cu îmbunătățiri semnificative pentru rutarea inteligentă a cererilor. Codul este scris în limbajul C și este distribuit sub licența deschisă PostgreSQL.
Funcționalități și caracteristici principale:
- Pool de conexiuni și echilibrarea sarcinii.
- Comutare automată la defecțiune cu suport pentru temporizatorul watchdog.
- Monitorizarea funcționalității și cache-ul cererilor.
- Autentificare SSL/TLS, PAM/LDAP.
- Compatibilitate cu PostgreSQL 13-18.
- Face parte din utilitarele pgElephant, care asigură disponibilitate ridicată. Poate fi integrat cu pgraft pentru consens Raft, fiind suportat monitoring-ul pgSentinel.
- Echilibrare a sarcinii bazată pe AI.
- Algoritmi de învățare automată pentru rutarea inteligentă a cererilor.
- Învățarea se adaptează în funcție de timpul de răspuns al cererilor și starea resurselor. server.
- Starea este evaluată în timp real și echilibrarea cererilor este prezisă.
- Parametrii de greutate configurabili pentru viteza de învățare și viteza prezicerii întâmplărilor aleatoare.
- Posibilitatea integrării cu platformele de monitorizare Prometheus și Grafana.
Gestionare prin REST API.
- 17 funcții HTTP/JSON pentru controlul complet al cluster-ului.
- API integrat serverul funcționând pe portul 8080.
- Autentificare cu token-uri JWT HMAC-SHA256.
- Obținerea statisticilor și metricilor stării modului de execuție.
- Timp de răspuns mai mic de 10 ms.
Transmisie de evenimente MQTT.
- MQTT este utilizat pentru publicarea modificărilor stării nodurilor, comutarea de urgență și verificarea stării resurselor în timp real.
- Se pot configura topicuri MQTT pentru diferite tipuri de evenimente.
- Integrare cu Mosquitto, EMQX sau orice broker MQTT.
- Asigură notificare automată a evenimentelor anormale și oferă un canal de transport pentru orchestrarea cluster-ului.
- Utilitar de linie de comandă bctl:
- Interfață unică, înlocuind peste 10 comenzi individuale „pcp_*”.
- 3 formate de ieșire: tabele, JSON sau format neschimbat.
- Ieșirea tabelelor formatate cu o ramă pentru datele runtime ale pgbalancer.
- Control de la distanță și modul de ieșire avansat.
- Fluxul de lucru GitHub Actions:
- build-matrix.yml: Construcții pe mai multe platforme (Ubuntu, macOS, Rocky Linux).
- Suport pentru PostgreSQL 13-18.
- Pachete DEB pentru Ubuntu 22.04/24.04, Debian 11/12.
- Pachete RPM pentru Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Suport pentru Autotools cu integrare autoreconf
- docs.yml: Implementarea documentației pe GitHub Pages.
Sursa: opennet.ro
