Le premier volume de pgbalancer, un répartiteur de charge PostgreSQL basé sur l'intelligence artificielle avec REST API et MQTT, a été publié. Pgbalancer gère le pool de connexions et la répartition de charge pour PostgreSQL, est contrôlé par HTTP et prend en charge la diffusion d'événements en temps réel. Le projet est créé comme un fork de pgpool-II avec des améliorations significatives pour le routage intelligent des requêtes. Le code est écrit en C et distribué sous la licence ouverte PostgreSQL.
Fonctionnalités et caractéristiques principales :
- Pool de connexions et répartition de charge.
- Basculement automatique avec prise en charge du minuteur watchdog.
- Surveillance de l'état et mise en cache des requêtes.
- Authentification SSL/TLS, PAM/LDAP.
- Compatibilité avec PostgreSQL 13-18.
- Fait partie des utilitaires pgElephant, garantissant une haute disponibilité. Peut s'intégrer avec pgraft pour le consensus Raft, avec le monitoring de pgSentinel.
- Répartition de charge basée sur l'IA.
- Algorithmes d'apprentissage machine pour le routage intelligent des requêtes.
- L'apprentissage s'adapte en fonction du temps de réponse des requêtes et de l'état des ressources. de serveurs.
- L'état est évalué en temps réel et la répartition des requêtes est prédite.
- Paramètres de poids configurables pour la vitesse d'apprentissage et la vitesse de prédiction d'événements aléatoires.
- Possibilité d'intégration avec les plateformes de monitoring Prometheus et Grafana.
Gestion via REST API.
- 17 fonctions HTTP/JSON pour une gestion complète du cluster.
- API intégré serveur fonctionnant sur le port 8080.
- Authentification par tokens JWT HMAC-SHA256.
- Obtention de statistiques et de métriques d'état de l'exécution.
- Temps de réponse inférieur à 10 ms.
Diffusion d'événements MQTT.
- MQTT est utilisé pour publier des changements d'état des nœuds, le basculement et les vérifications d'état des ressources en temps réel.
- Les topics MQTT peuvent être configurés pour différents types d'événements.
- Intégration avec Mosquitto, EMQX ou tout courtier MQTT.
- Fournit des alertes automatiques sur des événements exceptionnels et fournit un canal de transport pour l'orchestration du cluster.
- Utilitaire en ligne de commande bctl :
- Interface unique remplaçant plus de 10 commandes distinctes « pcp_* ».
- 3 formats de sortie : tableaux, JSON ou format brut.
- Sortie de tableaux formatés avec cadre pour les données runtime pgbalancer.
- Gestion à distance et mode de sortie avancé.
- Workflow GitHub Actions :
- build-matrix.yml : Builds sur plusieurs plateformes (Ubuntu, macOS, Rocky Linux).
- Support de PostgreSQL 13-18.
- Paquets DEB pour Ubuntu 22.04/24.04, Debian 11/12.
- Paquets RPM pour Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Support d'Autotools avec intégration d'autoreconf.
- docs.yml : Déploiement de la documentation sur GitHub Pages.
Source : opennet.ru
