Перейти к основному содержимому

Аварийное переключение кластера Stand-In

Предусловия​

  • Развернуты 4 воркера репликации.
  • Графы репликации (прямого и обратного направления) уже созданы, настроены и запущены.
  • Пользователь авторизован под ролью APPADMIN или APPDUTY.
  • Клиентские модули доступны и готовы к переключению.

Процесс​

  1. Пользователь в веб-интерфейсе GraDeLy Console переходит в раздел "Stand-in".

  2. Нажимает на кнопку "…" рядом с нужным кластером и выбирает опцию "Принудительное переключение".

  3. UI отправляет REST-запрос на сервер:

    POST /cluster/{clusterId}/switch?isForce=true
  4. API Console GraDeLy пересылает запрос:

    • Сначала — на воркер захвата.
    • Если он недоступен — на воркер применения (fallback-механизм).
  5. Воркер:

    • Получает параметр isForce=true.
    • Публикует сообщение в топик Kafka standin-state со статусом:
    status = REQUEST
    • Не ожидает появления вотермарки в таблице $GRADELY_SWITCHOVER$.
    • Сам генерирует подтверждение готовности.
    • Отправляет сообщение в топик standin-state со статусом:
    status = COMPLETE
    • Это сигнализирует, что переключение может начинаться без участия клиентов.
  6. Клиентские модули (если они работают):

    • Считывают сообщение REQUEST.
    • Переводят приложение в режим read-write на новой основной базе (Stand-In).
    • Продолжают работу.
  7. Веб-интерфейс GraDeLy:

    • Обновляет статус кластера на "SwitchOver (forced)".
    • Отображает предупреждение: "Переключение выполнено принудительно. Возможна потеря данных. Проверьте согласованность БД."