На базе нескольких BI-серверов продукта «Форсайт. Аналитическая платформа» можно развернуть отказоустойчивый кластер. Для этого понадобится балансировщик, сервер состояний и несколько BI-серверов, настроенных на работу с одним сервером состояний. Связь всех элементов кластера можно условно изобразить в виде следующей схемы:
Балансировщик может быть установлен как перед веб-серверами, так и перед BI-серверами. Как правило, достаточно поставить балансировщик перед BI-сервером, а веб-приложение настроить на адрес балансировщика. В некоторых ситуациях веб-приложение может стать узким местом, в этом случае необходимо увеличивать количество веб-серверов и добавлять балансировщик перед ним. Таким образом, пользователи будут открывать адрес балансировщика, который будет направлять запросы на один из веб-серверов.
Примечание. Перед созданием кластера ознакомьтесь с основными рекомендациями. При работе в ОС Linux ознакомьтесь с процессом сборки nginx с модулем sticky.
Рассмотрим пример развертывания кластера на базе нескольких BI-серверов продукта «Форсайт. Аналитическая платформа», балансировщика nginx и сервера состояний Memcached. Для создания кластера необходимо выполнить следующие настройки:
Настроить все BI-сервера на использование одного сервера состояний
Настроить балансировщик на работу с BI-серверами
Настроить веб-приложение для работы с балансировщиком
Таким образом, запрос от клиента поступает через веб-сервер на балансировщик. Балансировщик выбирает BI-сервер и в дальнейшем все запросы от этого клиента будут отправляться на выбранный BI-сервер. Сам BI-сервер после обработки запроса и обращения к СУБД будет сохранять параметры всех объектов на сервере состояний. Если при выполнении какого-либо запроса произошел сбой BI-сервера, то балансировщик повторно отправит запрос на другой BI-сервер, который восстановит все необходимые объекты с сервера состояний, выполнит запрос и сформирует ответ пользователю.
Схема штатной работы кластера:
Запрос.
Запрос BI-серверу.
Запрос к СУБД.
Получение ответа от СУБД.
Сохранение состояния.
Ответ от BI-сервера.
Передача полученных данных веб-серверу.
Схема работы кластера при сбое передачи запроса:
Запрос.
Запрос BI-серверу. При ошибке перенаправление запроса на другой BI-сервер.
Восстановление состояния.
Запрос к СУБД.
Получение ответа от СУБД.
Ответ от BI-сервера.
Передача полученных данных веб-серверу.
См. также:
Рекомендации по созданию кластера BI-серверов | Сборка nginx с модулем sticky на Ubuntu