Публикуван е първият брой на pgbalancer, балансировчик на натоварването PostgreSQL, базиран на изкуствен интелект, с REST API и MQTT. Pgbalancer осигурява обработка на пул от връзки и балансировка на натоварването за PostgreSQL, управлява се през HTTP протокол и поддържа потоково предаване на събития в реално време. Проектът е създаден като форк на pgpool-II с сериозни подобрения за интелигентна маршрутизация на заявки. Кодът е написан на C и се разпространява под открита лицензия PostgreSQL.
Основни функции и характеристики:
- Пул от връзки и балансировка на натоварването.
- Автоматично превключване при авария с поддръжка на наблюдателен таймер.
- Мониторинг на работоспособността и кеширане на заявки.
- 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 или формат без промяна.
- Изход на форматирани таблици с рамка за данни в реално време pgbalancer.
- Отдалечено управление и режим на разширен изход.
- GitHub Actions Работен процес:
- 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.
Източник: opennet.ru
