Механизм репликации данных Центра настройки
Для обеспечения целостности конфигурации между всеми серверами кластера в Платформе используется механизм репликации. Центр настройки (ЦН) периодически отправляет изменения конфигурации на другие узлы в виде архивов с измененными файлами.
Этот механизм работает автоматически и не требует действий от администратора.
Примечание
Очереди сообщений реплицирует Модуль горячего восстановления.
Основные моменты
Конфигурация отправляется в виде архивов в структуре директорий конфигурации.
Используется версия каждого архива.
На стороне каждого узла сохраняются очереди.
Если архив не был доставлен, он будет отправлен повторно.
Внимание
Этот механизм реплицирует файлы конфигурации ЦН. Репликация данных о пользователях и правах выполняется отдельно сервисом Credential.
Общая схема
Старт сервера с ЦН
При старте мастер-ЦН запускает автозадачу по отправке актуальной конфигурации: осуществляется сбор и рассылка последней версии конфигурации (архивируются все файлы каталога FileConfig).
Если адрес или порт ЦН у какой-то ноды изменился, мастер запрашивает у нее актуальный порт и обновляет запись. Если ответ не получен, никакие дополнительные действия не предпринимаются.
Старт дублирующего ЦН
Если узел — не мастер, он не отправляет конфигурацию, а запрашивает полную копию конфигурации у мастера. Мастер ЦН при этом создает полную версию конфигурации, отправляет всем серверам. После получения репликации счетчик версий обнуляется.
Периодическая отправка изменений
Каждые 30 секунд ЦН:
Собирает список файлов, измененных c момента последней успешной синхронизации.
Упаковывает их в архив.
Отправляет архивы на другие ноды.
Архивы остаются в очереди до момента, пока каждая нода не подтвердит получение. После завершения отправки архива на ноды сохраняется дата и время последней синхронизации.
Полная синхронизация
При получении сообщения о необходимости принудительной синхронизации для определенной ноды:
Формируется полный архив всей конфигурации.
Очереди очищаются.
Архив отправляется только на выбранную ноду.
Это используется при разрыве версий или больших пропусках.
Внимание
При получении сообщения о необходимости полной синхронизации конфигурация целиком отправляется на все ноды.
Получение и применение архива
После подтверждения получения на дочерней ноде:
Архив распаковывается строго в структуру конфигурации, если разница существующей и полученной версий равна единице.
Внимание
Если разница существующей и полученной версий больше пяти (например, номер версии на ноде 8, а получен архив с номером 14) или номер версии на ноде больше номера архива или равен ему, то:
Формируется сообщение в лог о необходимости проведения полной синхронизации.
Формируется сообщение для ноды с ЦН о необходимости формирования полной копии конфигурации.
Обработка завершается. Обработка на данном этапе завершается, так как нода ждет архив с номером версии, следующим от текущей примененной версии.
Версия увеличивается на 1.
Проверяются архивы в очереди “на обновлении”.
Если следующий архив по версии совпадает, применяется сразу.
Действия повторяются для всех архивов в очереди (если они остались). Таким образом достигается согласованность файлов на всех узлах кластера.