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