Серверы высокой готовности

Серверы высокой готовности работают несколько иначе, чем отдельные серверы.

Все серверы используют одну и ту же базу данных и общий каталог. Общий каталог применяется для обработки протоколов и нескольких других каталогов, а именно: logs, var/email, var/plugins и var/repository. Каждый сервер также независимо обслуживает некоторую информацию о конфигурации, например порты и хосты. База данных служит для обработки информации о конфигурации, данных времени выполнения и т.д.

Поскольку серверы совместно используют базу данных, все серверы работают с одним и тем же интервалом.

Некоторые свойства конфигурации остаются на сервере, например информация о базе данных и о соединении JMS. Конфигурация базы данных обрабатывается во время установки продукта; никакой дополнительной настройки по окончании установки не требуется.

Импорт файлов (CodeStation)

Все серверы проводят опрос на предмет изменений версий компонентов. Интервалы опроса определяются параметром, задаваемым пользователем (по умолчанию - 15 минут). База данных обрабатывает синхронизацию сервера: прежде чем записать в хранилище, он устанавливает блокировку базы данных. Значения времени опроса сбрасываются по окончании выполнения задания.

События

События обрабатываются сервером, который их инициализирует.

Служба потока операций

Потоки операций состоят из операций. Операции могут выполняться последовательно, параллельно или смешанно. Обычный поток операций может состоять из нескольких последовательных операций, например:

В соединениях JMS агенты могут настраиваться несколькими способами:

Все серверы постоянно проводят опрос на предмет ожидающих потоков операций, поэтому инициализировать поток операций может любой сервер. Сервер, захватывающий этот поток операций, выполняет следующие задачи:

  1. Создает динамический экземпляр операции A и устанавливает блокировку базы данных.
  2. Записывает команду, которую он собирается отправить в базу данных.
  3. Отправляет команду агенту по JMS.
  4. Снимает блокировку с базы данных.

По окончании работы агент отправляет ответное сообщение по JMS. Сообщение будет записано в базу данных (одним из серверов) и будет запущена следующая операция (одним из серверов). Сервер, запустивший операцию B, выполняет те же действия, что описаны выше.

В описанном здесь простом потоке операций все операции могут выполняться как одним сервером, так и разными (возможно и сочетание). Конечно, это было бы справедливо и в случае, если этот поток операций состоял бы из трех параллельных операций.

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

Обработка сбоев

Во время обработки приложений сбои команд отмечаются в потоке операций. За обработку ошибок отвечает автор приложения. Откат компонентов может обрабатываться с помощью команд/действий отката. Откат - в данном контексте - означает повторную установку более ранней версии компонента.

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

Если во время выполнения команды агент выходит из строя или каким-либо иным образом исчезает (при этом сбой на шаге выполнения не означает сбоя самого агента), то сервер предполагает, что команда по-прежнему выполняется; автоматический тайм-аут отсутствует. Обычно назначать интервал тайм-аута затруднительно и непрактично.


Отзывы