Këtu është publikimi i parë i pgbalancer, një balancues ngarkese për PostgreSQL i bazuar në inteligjencën artificiale me REST API dhe MQTT. Pgbalancer ofron trajtimin e pulit të lidhjeve dhe balancimin e ngarkesës për PostgreSQL, menaxhohet përmes protokollit HTTP dhe mbështet transmetimin e ngjarjeve në kohë reale. Projekti është krijuar si një fork i pgpool-II me përmirësime serioze për rrugitjen e zgjedhjeve të kërkesave. Kodi është shkruar në gjuhën C dhe shpërndahet nën licencën e hapur PostgreSQL.
Karakteristikat dhe veçoritë kryesore:
- Puli i lidhjeve dhe balancimi i ngarkesës.
- Ndarje automatike e emergjencës me mbështetje për timera watchdog.
- Monitorimi i disponueshmërisë dhe cache'i i kërkesave.
- Autentifikimi SSL/TLS, PAM/LDAP.
- Kompatibilitet me PostgreSQL 13-18.
- Është pjesë e utiliteteve pgElephant, që sigurojnë disponueshmëri të lartë. Mund të integrohet me pgraft për konsensusin Raft, monitorimi mbështetet nga pgSentinel.
- Balancimi i ngarkesës me bazë në IA.
- Algoritmet e mësimit të makinerisë për rrugëzim të zgjuar të kërkesave.
- Mësimi përshtatet në varësi të kohës së përgjigjes së kërkesave dhe gjendjes së burimeve. сервера.
- Vlerësohet gjendja në kohë reale dhe parashikohet balancimi i kërkesave.
- Parametra të rregullueshëm peshe për shpejtësinë e mësimit dhe shpejtësinë e supozimeve të ngjarjeve të rastit.
- Mundësi integrimi me platformat e monitorimit Prometheus dhe Grafana.
Menaxhim përmes REST API.
- 17 funksione HTTP/JSON për menaxhim të plotë të klasterit.
- Inkuadruar server API që punon në portin 8080.
- Autentifikimi me tokenet JWT HMAC-SHA256.
- Marrja e statistikave dhe metrikave të gjendjes së ekzekutimit.
- Koha e përgjigjes është më pak se 10 ms.
Transmetimi i ngjarjeve MQTT.
- MQTT përdoret për publikimin e ndryshimeve të gjendjes së nyjave, ndarjes emergjente dhe kontrolleve të gjendjes së burimeve në kohë reale.
- Mund të konfigurohen temat MQTT për lloje të ndryshme ngjarjesh.
- Integrim me Mosquitto, EMQX ose çdo broker MQTT.
- Siguron njoftim automatik për ngjarjet e jashtëzakonshme dhe ofron një kanal transmetimi për orkestrimin e klasterit.
- Utilita e komandave bctl:
- Një ndërfaqe e vetme, që zëvendëson më shumë se 10 komanda të ndara ‘pcp_*’.
- 3 formate dalëse: tabela, JSON ose format i pandryshuar.
- Shfaqja e tabelave të formatuara me kuadrim për të dhënat runtime të pgbalancer.
- Menaxhimi i largët dhe moda e daljes së avancuar.
- GitHub Actions Workflow:
- build-matrix.yml: Ndërtime në platforma të shumta (Ubuntu, macOS, Rocky Linux).
- Mbështetje për PostgreSQL 13-18.
- DEB-paketat për Ubuntu 22.04/24.04, Debian 11/12.
- RPM-paketat për Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Mbështetje për Autotools me integrim autoreconf.
- docs.yml: Shpërndarja e dokumentacionit GitHub Pages.
Burimi: opennet.ru
