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. serverë.
- 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
