Skip to content

Закрепление клиентов и leastconn для DNS-пулов с резервом - #19

Closed
fesevu wants to merge 1 commit into
NodeFlow-dev:mainfrom
fesevu:feature/sticky-backup-pools
Closed

fesevu wants to merge 1 commit into
NodeFlow-dev:mainfrom
fesevu:feature/sticky-backup-pools

Conversation

@fesevu

@fesevu fesevu commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

В режиме «Основной + резервные» редактор скрывал распределение клиентов, а сервер удалял его настройки. Из-за этого нельзя было настроить основной DNS-пул с выбором первого сервера по leastconn, закреплением клиента и отдельным резервом.

Теперь роли серверов и закрепление настраиваются независимо. Сохраняются алгоритм, срок и параметры stick-table; работают повторное открытие маршрута, предпросмотр и генерация HAProxy. Старые маршруты без явных настроек закрепления сохраняют прежнюю генерацию.

Поддерживается штатный leastconn с толерантностью 0%. Агентские leastping и leastconn с ненулевой толерантностью для резервной топологии явно отклоняются: существующий контроллер не разделяет основные и резервные серверы. Обновление агента и миграция БД не требуются.

Проверки:

  • Go-тесты всего проекта в Linux;
  • 36 frontend-тестов, включая матрицу контрактов редактора и API;
  • production-сборка frontend;
  • три сгенерированных конфига проверены через HAProxy 3.2 (haproxy -c);
  • браузерная проверка демо-редактора: основной DNS-пул, резерв, запоминание клиента и срок 24 часа.

В документации описаны настройка, ограничения и семантика закрепления: срок считается по неактивности, установленные TCP-соединения не переносятся, закрепление на резерве может сохраняться после восстановления основных.

@SHOKOVprod SHOKOVprod mentioned this pull request Oct 15, 2026
@SHOKOVprod

Copy link
Copy Markdown
Contributor

Спасибо! Включено в NodeFlow 2.2.0 (#22) с исправлениями по ревью: сохранение прежнего рендера старых failover-маршрутов (миграция 000057), умолчание без закрепления для failover, аудит копирования/шаблонов, schema_version шаблонов, обновлённые диалоги. Вы указаны соавтором.

@SHOKOVprod SHOKOVprod closed this Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants