Создание кластера BI-серверов

На базе нескольких BI-серверов продукта «Форсайт. Аналитическая платформа» можно развернуть отказоустойчивый кластер. Для этого понадобится балансировщик, сервер состояний и несколько BI-серверов, настроенных на работу с одним сервером состояний. Связь всех элементов кластера можно условно изобразить в виде следующей схемы:

Балансировщик может быть установлен как перед веб-серверами, так и перед BI-серверами. Как правило, достаточно поставить балансировщик перед BI-сервером, а веб-приложение настроить на адрес балансировщика. В некоторых ситуациях веб-приложение может стать узким местом, в этом случае необходимо увеличивать количество веб-серверов и добавлять балансировщик перед ними. Таким образом, пользователи будут открывать адрес балансировщика, который будет направлять запросы на один из веб-серверов.

Примечание. Перед созданием кластера ознакомьтесь с основными рекомендациями. При работе в ОС Linux ознакомьтесь с процессом сборки nginx с модулем sticky.

Рассмотрим пример развертывания кластера на базе нескольких BI-серверов продукта «Форсайт. Аналитическая платформа», балансировщика и сервера состояний Memcached. Для создания кластера выполните следующие настройки:

Настройка всех BI-серверов на использование одного сервера состояний

В зависимости от используемого балансировщика задайте его настройки:

Настройка балансировщика HAProxy

Настройка балансировщика nginx

Настройте веб-приложение:

Настройка веб-приложения для работы с балансировщиком

Таким образом, запрос от клиента поступает через веб-сервер на балансировщик. Балансировщик выбирает BI-сервер и в дальнейшем все запросы от этого клиента будут отправляться на выбранный BI-сервер. Сам BI-сервер после обработки запроса и обращения к СУБД будет сохранять параметры всех объектов на сервере состояний. Если при выполнении какого-либо запроса произошел сбой BI-сервера, то балансировщик повторно отправит запрос на другой BI-сервер, который восстановит все необходимые объекты с сервера состояний, выполнит запрос и сформирует ответ пользователю.

Если предполагается работа с Web-формами, которые при своей работе используют протокол WebSocket, то необходимо использовать балансировщик HAProxy. Более подробное описание о его настройке читайте в статье «Настройка балансировщика HAProxy для работы Web-форм».

Штатный режим работы кластера

Схема штатной работы кластера:

  1. Запрос.

  2. Запрос BI-серверу.

  3. Запрос к СУБД.

  4. Получение ответа от СУБД.

  5. Сохранение состояния.

  6. Ответ от BI-сервера.

  7. Передача полученных данных веб-серверу.

Сбой при передаче запроса кластеру

Схема работы кластера при сбое передачи запроса:

  1. Запрос.

  2. Запрос BI-серверу. При ошибке перенаправление запроса на другой BI-сервер.

  3. Восстановление состояния.

  4. Запрос к СУБД.

  5. Получение ответа от СУБД.

  6. Ответ от BI-сервера.

  7. Передача полученных данных веб-серверу.

См. также:

Рекомендации по созданию кластера BI-серверов | Сборка nginx с модулем sticky на Ubuntu | Сборка HAProxy определённой версии