Механизм репликации данных Центра настройки

Для обеспечения целостности конфигурации между всеми серверами кластера в Платформе используется механизм репликации. Центр настройки (ЦН) периодически отправляет изменения конфигурации на другие сервера в виде архивов с измененными файлами.

Этот механизм работает автоматически и не требует действий от администратора.

Примечание

Очереди сообщений реплицирует Модуль горячего восстановления.

Основные моменты

  • Конфигурация отправляется в виде архивов в структуре директорий конфигурации.

  • Используется версия каждого архива.

  • На стороне каждого сервера сохраняются очереди.

  • Если архив не был доставлен, он будет отправлен повторно.

Внимание

Этот механизм реплицирует файлы конфигурации ЦН. Репликация данных о пользователях и правах выполняется отдельно сервисом Credential.

Общая схема

Старт мастер-сервера с ЦН

При старте мастер-сервера ЦН запускает автозадачу по отправке актуальной конфигурации: осуществляется сбор и рассылка последней версии конфигурации (архивируются все файлы каталога FileConfig).

Если адрес или порт ЦН у какого-то сервера изменился, мастер запрашивает у нее актуальный порт и обновляет запись. Если ответ не получен, никакие дополнительные действия не предпринимаются.

Старт slave-сервера ЦН

Если сервер — не мастер, он не отправляет конфигурацию, а запрашивает полную копию конфигурации у мастера. Мастер ЦН при этом создает полную версию конфигурации, отправляет всем серверам. После получения репликации счетчик версий обнуляется.

Периодическая отправка изменений

Каждые 30 секунд ЦН:

  • Собирает список файлов, измененных c момента последней успешной синхронизации.

  • Упаковывает их в архив.

  • Отправляет архивы на другие серверы.

Архивы остаются в очереди до момента, пока каждый сервер не подтвердит получение. После завершения отправки архива на серверы сохраняется дата и время последней синхронизации.

Полная синхронизация

При получении сообщения о необходимости принудительной синхронизации для определенного сервера:

  • Формируется полный архив всей конфигурации.

  • Очереди очищаются.

  • Архив отправляется только на выбранный сервер.

Это используется при разрыве версий или больших пропусках.

Внимание

При получении сообщения о необходимости полной синхронизации конфигурация целиком отправляется на все серверы.

Получение и применение архива

После подтверждения получения на дочернем сервера:

  • Архив распаковывается строго в структуру конфигурации, если разница существующей и полученной версий равна единице.

Внимание

Если разница существующей и полученной версий больше пяти (например, номер версии на сервере 8, а получен архив с номером 14) или номер версии на сервере больше номера архива или равен ему, то:

  1. Формируется сообщение в лог о необходимости проведения полной синхронизации.

  2. Формируется сообщение для сервера с ЦН о необходимости формирования полной копии конфигурации.

  3. Обработка завершается. Обработка на данном этапе завершается, так как сервер ждет архив с номером версии, следующим от текущей примененной версии.

  • Версия увеличивается на 1.

  • Проверяются архивы в очереди “на обновлении”.

  • Если следующий архив по версии совпадает, применяется сразу.

Действия повторяются для всех архивов в очереди (если они остались). Таким образом достигается согласованность файлов на всех серверах кластера.