La première version de pgbalancer, un répartiteur de charge PostgreSQL basé sur l'IA et doté d'une API REST et MQTT, est désormais disponible. pgbalancer assure la mise en pool des connexions et l'équilibrage de charge pour PostgreSQL, se gère via HTTP et prend en charge le flux d'événements en temps réel. Ce projet est une version dérivée de pgpool-II, intégrant des améliorations significatives pour le routage intelligent des requêtes. Le code est écrit en C et distribué sous la licence open source PostgreSQL.
Principales caractéristiques et fonctionnalités :
- Mise en commun des connexions et équilibrage de charge.
- Basculement automatique avec prise en charge du minuteur de surveillance.
- Surveillance des performances et mise en cache des requêtes.
- Authentification SSL/TLS, PAM/LDAP.
- Compatible avec PostgreSQL 13-18.
- Il fait partie des utilitaires de haute disponibilité pgElephant. Il peut être intégré à pgraft pour le consensus Raft et prend en charge la surveillance pgSentinel.
- Équilibrage de charge basé sur l'IA.
- Algorithmes d'apprentissage automatique pour le routage intelligent des requêtes.
- La formation est adaptée en fonction du temps de réponse aux demandes et de l'état des ressources. serveur.
- L'état est évalué en temps réel et l'équilibrage des requêtes est prédit.
- Paramètres de pondération configurables pour le taux d'apprentissage et le taux de prédiction d'événements aléatoires.
- Possibilité d'intégration avec les plateformes de surveillance Prometheus et Grafana.
Gestion via API REST.
- 17 fonctions HTTP/JSON pour une gestion complète du cluster.
- Serveur API intégré fonctionnant sur le port 8080.
- Authentification avec des jetons JWT HMAC-SHA256.
- Obtention de statistiques et de mesures sur l'état du mode d'exécution.
- Temps de réponse inférieur à 10 ms.
Diffusion en continu d'événements MQTT.
- MQTT est utilisé pour publier les changements d'état des nœuds, les basculements et les contrôles d'intégrité des ressources en temps réel.
- Vous pouvez configurer des sujets MQTT pour différents types d'événements.
- Intégration avec Mosquitto, EMQX ou tout autre courtier MQTT.
- Fournit une notification automatique des événements anormaux et un canal de transport pour l'orchestration du cluster.
- Utilitaire de ligne de commande bctl :
- Une interface unique qui remplace plus de 10 commandes « pcp_* » distinctes.
- 3 formats de sortie : tableaux, JSON ou format non modifié.
- Sortie de tableaux formatés avec des cadres pour les données d'exécution de pgbalancer.
- Télécommande et mode de sortie étendu.
- Flux de travail GitHub Actions :
- build-matrix.yml: Сборки на нескольких платформах (Ubuntu, macOS, Rocky Linux).
- Prise en charge de PostgreSQL 13-18.
- DEB-пакеты для Ubuntu 22.04 / 24.04, Debian 11 / 12.
- RPM-пакеты для Rocky 9, AlmaLinux 9, CentOS Flux 9.
- Prise en charge d'Autotools avec intégration d'autoreconf
- docs.yml : Déploiement de la documentation GitHub Pages.
Source: opennet.ru
