Opublikowano pierwszy wydanie pgbalancer, load balancera PostgreSQL wykorzystującego sztuczną inteligencję z REST API i MQTT. Pgbalancer zapewnia obsługę pul połączeń oraz równoważenie obciążenia dla PostgreSQL, jest zarządzany protokołem HTTP i obsługuje przesyłanie zdarzeń w czasie rzeczywistym. Projekt powstał jako fork pgpool-II z istotnymi ulepszeniami dla inteligentnego routingu zapytań. Kod napisany jest w języku C i udostępniany na licencji open source PostgreSQL.
Główne funkcje i cechy:
- Pul połączeń i równoważenie obciążenia.
- Automatyczne przełączanie awaryjne z obsługą timera watchdog.
- Monitorowanie dostępności i cachowanie zapytań.
- Uwierzytelnianie SSL/TLS, PAM/LDAP.
- Kompatybilność z PostgreSQL 13-18.
- Jest częścią narzędzi pgElephant, zapewniających wysoką dostępność. Może integrować się z pgraft dla konsensusu Raft, obsługiwane przez monitorowanie pgSentinel.
- Równoważenie obciążenia oparte na AI.
- Algorytmy uczenia maszynowego dla inteligentnego routingu zapytań.
- Uczenie adaptacyjne w zależności od czasu odpowiedzi zapytań i stanu zasobów. serwera.
- Ocena stanu w czasie rzeczywistym i prognozowanie równoważenia zapytań.
- Konfigurowalne parametry wagowe dla szybkości uczenia i szybkości oszacowań losowych zdarzeń.
- Możliwość integracji z platformami monitorującymi Prometheus i Grafana.
Zarządzanie przez REST API.
- 17 funkcji HTTP/JSON do pełnego zarządzania klastrem.
- Zintegrowany serwer API działające na porcie 8080.
- Uwierzytelnianie tokenami JWT HMAC-SHA256.
- Uzyskiwanie statystyk i metryk stanu wykonania.
- Czas odpowiedzi poniżej 10 ms.
Strumieniowe przesyłanie zdarzeń MQTT.
- MQTT jest wykorzystywane do publikacji zmian stanu węzłów, przełączania awaryjnego i sprawdzania stanu zasobów w czasie rzeczywistym.
- Można skonfigurować tematy MQTT dla różnych typów zdarzeń.
- Integracja z Mosquitto, EMQX lub dowolnym brokerem MQTT.
- Zapewnia automatyczne powiadamianie o niepożądanych zdarzeniach i udostępnia kanał transportowy do orkiestracji klastra.
- Narzędzie wiersza poleceń bctl:
- Jednolity interfejs, zastępujący ponad 10 oddzielnych poleceń 'pcp_*'.
- 3 formaty wyjścia: tabele, JSON lub format bez zmian.
- Wyjście sformatowanych tabel z ramką dla danych runtime pgbalancer.
- Zdalne zarządzanie i tryb rozszerzonego wyjścia.
- Workflow GitHub Actions:
- build-matrix.yml: Kompilacje na różnych platformach (Ubuntu, macOS, Rocky Linux).
- Wsparcie dla PostgreSQL 13-18.
- Pakiety DEB dla Ubuntu 22.04/24.04, Debian 11/12.
- Pakiety RPM dla Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Wsparcie dla Autotools z integracją autoreconf.
- docs.yml: Wdrażanie dokumentacji GitHub Pages.
Źródło: opennet.ru
