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