Se ha publicado el primer lanzamiento de pgbalancer, un equilibrador de carga de PostgreSQL basado en inteligencia artificial con REST API y MQTT. Pgbalancer proporciona gestión de grupos de conexiones y equilibrio de carga para PostgreSQL, se administra mediante el protocolo HTTP y admite transmisión de eventos en tiempo real. El proyecto se creó como un fork de pgpool-II con mejoras significativas para la enrutación inteligente de consultas. El código está escrito en C y se distribuye bajo la licencia abierta de PostgreSQL.
Principales características y funciones:
- Grupo de conexiones y equilibrio de carga.
- Conmutación automática por error con soporte de temporizador watchdog.
- Monitoreo de disponibilidad y almacenamiento en caché de consultas.
- Autenticación SSL/TLS, PAM/LDAP.
- Compatibilidad con PostgreSQL 13-18.
- Es parte de las utilidades pgElephant que garantizan alta disponibilidad. Puede integrarse con pgraft para consenso Raft, se admite el monitoreo de pgSentinel.
- Equilibrio de carga basado en IA.
- Algoritmos de aprendizaje automático para enrutación inteligente de consultas.
- El aprendizaje se adapta según el tiempo de respuesta de las consultas y el estado de los recursos. servidores.
- Se evalúa el estado en tiempo real y se predice el equilibrio de las consultas.
- Parámetros de peso configurables para la velocidad de aprendizaje y la velocidad de suposición de eventos aleatorios.
- Posibilidad de integración con plataformas de monitoreo Prometheus y Grafana.
Gestión a través de REST API.
- 17 funciones HTTP/JSON para el control completo del clúster.
- Integrado servidor API funcionando en el puerto 8080.
- Autenticación mediante tokens JWT HMAC-SHA256.
- Obtención de estadísticas y métricas del estado de ejecución.
- Tiempo de respuesta inferior a 10 ms.
Transmisión de eventos MQTT.
- MQTT se utiliza para publicar cambios en el estado de los nodos, conmutación por error y comprobaciones de estado de recursos en tiempo real.
- Se pueden configurar temas de MQTT para diferentes tipos de eventos.
- Integración con Mosquitto, EMQX o cualquier broker MQTT.
- Proporciona alertas automáticas sobre eventos anómalos y ofrece un canal de transporte para la orquestación del clúster.
- Utilidad de línea de comandos bctl:
- Interfaz única que reemplaza más de 10 comandos separados “pcp_*”.
- 3 formatos de salida: tablas, JSON o formato sin cambios.
- Salida de tablas formateadas con marco para datos en tiempo de ejecución de pgbalancer.
- Control remoto y modo de salida extendida.
- Flujo de trabajo de GitHub Actions:
- build-matrix.yml: Compilaciones en múltiples plataformas (Ubuntu, macOS, Rocky Linux).
- Compatibilidad con PostgreSQL 13-18.
- Paquetes DEB para Ubuntu 22.04/24.04, Debian 11/12.
- Paquetes RPM para Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Compatibilidad con Autotools con integración de autoreconf.
- docs.yml: Despliegue de documentación en GitHub Pages.
Fuente: opennet.ru
