Вышел pgbalancer 1.0, балансировщик нагрузки PostgreSQL на основе ИИ, поддерживающий REST API и MQTT

Опубликован первый выпуск pgbalancer, балансировщика нагрузки PostgreSQL на основе искусственного интеллекта с REST API и MQTT. Pgbalancer обеспечивает обработку пула соединений и балансировку нагрузки для PostgreSQL, управляется по протоколу HTTP и поддерживает потоковую передачу событий в режиме реального времени. Проект создан как форк pgpool-II с серьёзными улучшениями для умной маршрутизации запросов. Код написан на языке Си и распространяется под открытой лицензией PostgreSQL.

Основные возможности и особенности:

  • Пул соединений и балансировка нагрузки.
  • Автоматическое аварийное переключение с поддержкой сторожевого таймера watchdog.
  • Мониторинг работоспособности и кэширование запросов.
  • Аутентификация SSL/TLS, PAM/LDAP.
  • Совместимость с PostgreSQL 13-18.
  • Является частью утилит pgElephant, обеспечивающих высокую доступность. Может интегрироваться с pgraft для Raft-консенсуса, поддерживается мониторинг pgSentinel.
  • Балансировка нагрузки на базе ИИ.
    • Алгоритмы машинного обучения для умной маршрутизации запросов.
    • Обучение подстраивается в зависимости от времени отклика запросов и состояния ресурсов сервера.
    • Оценивается состояние в реальном времени и предсказывается балансировка запросов.
    • Настраиваемые параметры весов для скорости обучения и скорости предположений случайных событий.
    • Возможность интеграции с платформами мониторинга Prometheus и Grafana.

    Управление через REST API.

    • 17 функций HTTP/JSON для полного управления кластером.
    • Интегрированный сервер API, работающий на порту 8080.
    • Аутентификация токенами JWT HMAC-SHA256.
    • Получение статистик и метрик состояния режима исполнения.
    • Время отклика менее 10 мс.

    Потоковая передача событий MQTT.

    • MQTT используется для публикации изменений состояния узлов, аварийного переключения и проверок состояния ресурсов в реальном времени.
    • Можно настроить топики MQTT для различных типов событий.
    • Интеграция с Mosquitto, EMQX или любым MQTT-брокером.
    • Обеспечивает автоматическое оповещение о нештатных событиях и предоставляет транспортный канал для оркестровки кластера.
  • Утилита командной строки bctl:
    • Единый интерфейс, заменяющий более 10 отдельных команд «pcp_*».
    • 3 формата вывода: таблицы, JSON или формат без изменений.
    • Вывод отформатированных таблиц с обрамлением для runtime-данных pgbalancer.
    • Удалённое управление и режим расширенного вывода.
  • GitHub Actions Workflow:
    • build-matrix.yml: Сборки на нескольких платформах (Ubuntu, macOS, Rocky Linux).
    • Поддержка PostgreSQL 13-18.
    • DEB-пакеты для Ubuntu 22.04/24.04, Debian 11/12.
    • RPM-пакеты для Rocky 9, AlmaLinux 9, CentOS Stream 9.
    • Поддержка Autotools с интеграцией autoreconf
    • docs.yml: Развёртывание документации GitHub Pages.



Источник: http://www.opennet.ru/opennews/art.shtml?num=64140