Foi publicada a primeira versão do pgbalancer, um balanceador de carga PostgreSQL baseado em inteligência artificial com REST API e MQTT. O pgbalancer fornece gestão de pool de conexões e balanceamento de carga para PostgreSQL, gerenciado via protocolo HTTP e suporta transmissão de eventos em tempo real. O projeto foi criado como um fork do pgpool-II, com melhorias significativas para o roteamento inteligente de solicitações. O código é escrito em C e é distribuído sob a licença aberta do PostgreSQL.
Principais funcionalidades e características:
- Pool de conexões e balanceamento de carga.
- Failover automático com suporte a watchdog.
- Monitoramento de saúde e cache de solicitações.
- Autenticação SSL/TLS, PAM/LDAP.
- Compatibilidade com PostgreSQL 13-18.
- Parte das utilitárias pgElephant que oferecem alta disponibilidade. Pode ser integrado com pgraft para consenso Raft, com suporte ao monitoramento pgSentinel.
- Balanceamento de carga baseado em IA.
- Algoritmos de aprendizado de máquina para roteamento inteligente de solicitações.
- O aprendizado se ajusta com base no tempo de resposta das solicitações e no estado dos recursos. servidor.
- O estado é avaliado em tempo real e o balanceamento de solicitações é previsto.
- Parâmetros de peso configuráveis para a taxa de aprendizado e velocidade das suposições de eventos aleatórios.
- Possibilidade de integração com plataformas de monitoramento Prometheus e Grafana.
Gerenciamento através de REST API.
- 17 funções HTTP/JSON para controle total do cluster.
- API integrada servidor funcionando na porta 8080.
- Autenticação com tokens JWT HMAC-SHA256.
- Obtenção de estatísticas e métricas do estado de execução.
- Tempo de resposta inferior a 10 ms.
Transmissão de eventos MQTT.
- MQTT é utilizado para publicar mudanças no estado dos nós, failover e checagens de estado de recursos em tempo real.
- Tópicos MQTT podem ser configurados para diferentes tipos de eventos.
- Integração com Mosquitto, EMQX ou qualquer broker MQTT.
- Fornece notificações automáticas sobre eventos anormais e oferece um canal de transporte para orquestração do cluster.
- Utilitário de linha de comando bctl:
- Uma interface unificada que substitui mais de 10 comandos separados 'pcp_*'.
- 3 formatos de saída: tabelas, JSON ou formato sem alterações.
- Saída de tabelas formatadas com contornos para os dados runtime do pgbalancer.
- Gerenciamento remoto e modo de saída avançada.
- Fluxo de Trabalho do GitHub Actions:
- build-matrix.yml: Compilações em várias plataformas (Ubuntu, macOS, Rocky Linux).
- Suporte ao PostgreSQL 13-18.
- Pacotes DEB para Ubuntu 22.04/24.04, Debian 11/12.
- Pacotes RPM para Rocky 9, AlmaLinux 9, CentOS Stream 9.
- Suporte ao Autotools com integração do autoreconf.
- docs.yml: Implantação da documentação do GitHub Pages.
Fonte: opennet.ru
