Высокая доступность
Резервирование сервера приложений
Описание
Для обеспечения высокой доступности вы можете запустить несколько экземпляров сервера приложений ТехноДок на разных серверах.
- Для каждого экземпляра сервера приложений необходимо указать его приоритет
Cluster:Priority
и адреса других серверов ТехноДокCluster:ServersAddresses
в файлеtechnodoc.settings.ini
. - В Системе может быть только один
ведущий
сервер и неограниченное количествоведомых
серверов приложений.
- Сервера приложений ТехноДок запускают процесс голосования и назначают серверу с наибольшим приоритетом роль
ведущий
, остальным серверам назначается рольведомый
.- Частота голосования определяется настройкой
Cluster:PollingRate
в файлеtechnodoc.settings.ini
. Значение по умолчанию -1 минута
. - Если в процессе голосования сервер меняет роль с
ведомого
наведущего
, то происходит повышение приоритета сервера на значение, равное количеству секунд, прошедших с 1 января 1970 года. - После того, как
ведомый
сервер сталведущим
, обратного переключения не произойдет до тех пор, пока новыйведущий
сервер корректно функционирует.
- Частота голосования определяется настройкой
- В случае выполнения аварийного переключения пользователь будет видеть информационное окно.
- Сервер приложений в роли
ведущий
использует настройкиtechnodoc.settings.json
из основной секции настроек. - Сервер приложений в
ведомый
использует настройкиtechnodoc.settings.json
из секцииStandby
.- Предполагается, что большая часть периодических задач (создание отчетов по расписанию, пересчет отчетов, отправка по почте и т.д.) будут работать только на основном сервере, на резервном сервере они будут простаивать.
- Чтобы указать, что определенная настройка должна примениться только для
ведомого
сервера, необходимо перед настройкой добавить префиксStandby
. Например, для отключения всех периодических задач, необходимо в файлеtechnodoc.settings.ini
в секции[Standby:JobScheduler]
раскомментировать строкуIsEnabled=false
.
- Клиентское приложений ТехноДок может отправлять запросы на чтение как
ведущему
серверу, так иведомому
.- В зависимости от настройки
Cluster:RequestHandleType
вtechnodoc.settings.json
будет выбрана одна из стратегий обработки запросов на сервере с рольюведомый
:Cluster:RequestHandleType=Forbid
- для запросов на изменение данных (POST, PUT, DELETE) будет возвращена ошибка405 Method Not Allowed
.Cluster:RequestHandleType=RedirectToPrimary
- запросы на изменение данных будут перенаправлены наведущий
сервер.- Режим
Cluster:RequestHandleType=RedirectToPrimary
гарантированно поддерживается в панели Каскад. В других браузерах могут быть установлены политики безопасности, которые в настоящий момент не позволяют корректно выполнять перенаправление запросов.
- В зависимости от настройки
Настройка
Для примера рассмотрим схему, состоящую из 2-х серверов reports.server1
(ведущий) и reports.server1
(ведомый).