Кластеры FineReport
1) Кластер означает, что несколько проектов группируются вместе для оказания одной и той же услуги. В кластере каждый проект можно рассматривать как один узел.
2) Поскольку кластеры можно расширять по горизонтали, пользователи могут добавлять узлы для достижения увеличения параллелизма линейным образом, тем самым повышая производительность системы для поддержки параллелизма. Пользователи также могут выделить несколько проектов в качестве резервных копий, чтобы избежать потерь, вызванных простоем системы (например, перерывом в работе и потерей данных/шаблонов) в случае недоступности какого-либо отдельного сервера. Это эффективный способ поддерживать круглосуточную работу системы.
Функции
Высокая доступность
1) В безхостовом режиме при выходе из строя узла в кластере кластерная система продолжит обеспечивать бесперебойную обработку;
2) При выходе из строя узла в кластере он автоматически переключится на другой узел без необходимости повторного входа в систему.
Высокая последовательность
1) Информация о конфигурации и файлы ресурсов платформ на всех узлах могут быть проверены и обновлены в режиме реального времени и синхронизировано;
2) Если пакеты JAR в узлах несовместимы, они будут автоматически проверяться, сравниваться и выдаваться оповещения при загрузке.
Высокая масштабируемость
Поскольку кластеры можно расширять по горизонтали благодаря превосходному дизайну архитектуры, пользователи могут добавлять узлы для достижения линейного увеличения параллелизма, тем самым обеспечивая более высокую производительность системы для поддержки параллелизма.
Удобный для пользователя интерфейс
1) Имеет простые визуальные настройки, благодаря чему пользователи могут управлять 80% настроек на платформе принятия решений;
2) Он поддерживает горячее развертывание, поэтому пользователи могут добавлять/удалять узлы, просто копируя файлы узлов, без необходимости перезагрузки;
3) Он контролирует работу всех узлов в режиме реального времени, таким образом пользователям можно своевременно напоминать о таких случаях, как простой узла и несогласованность времени между узлами.
Кластерная архитектура
Кластерное решение
Решение веб-кластеризации состоит из «балансировщика нагрузки+веб-контейнера+сервера состояния+файлового сервера+внешней базы данных». Ниже приводится краткое описание функций каждого компонента:
Балансировщик нагрузки
Разумно распределяя запросы пользователей по каждому узлу в соответствии с алгоритмом, балансировщик нагрузки облегчает нагрузку на каждый отдельный проект и снижает требования к производительности для каждого отдельного сервера. Балансировщик нагрузки — это точка входа в кластерные системы серверов.
Балансировщики нагрузки обычно делятся на программные балансировщики нагрузки и аппаратные балансировщики нагрузки. В качестве программного балансировщика нагрузки рекомендуется использовать Nginx, а в качестве аппаратного балансировщика нагрузки — F5. Для балансировщика нагрузки, не использующего Nginx, FineReport предоставляет только инструкции по настройке.
Веб-контейнер (один из компонентов J2EE-контейнера)
Веб-контейнер — это служебная программа или программа, поддерживающая выпуск веб-программ.
Каждый серверный порт оснащен такой сервисной программой для обработки запросов со стороны клиента.
Рекомендуемые веб-контейнеры: контейнер Tomcat, контейнер WebLogic и контейнер WebSphere.x.
Внешняя база данных
Внешняя база данных в режиме реального времени синхронизирует информацию о конфигурации платформы между всеми узлами кластера; все узлы используют одну и ту же внешнюю базу данных.
Поддерживаемые базы данных: MySQL, SQLServe, Oracle и DB2.
Статус сервера
Сервер состояния хранит кэшированные данные, информацию для входа в систему, блокировку шаблона и идентификатор сеанса, управляет состоянием и кэшами всех серверов, а также ограничивает доступ и операции путем проверки.
В настоящее время поддерживаются Redis Standalone и Redis Cluster.
Синхронизация файлов
Вы можете выбрать два режима синхронизации: синхронизация между узлами и общий доступ к файловому серверу. Согласованность файлов ресурсов (шаблонов и т. д.) в реальном времени гарантируется обоими режимами.
1) Межузловая синхронизация: это режим по умолчанию, когда файловый сервер выключен. В этом режиме файлы ресурсов всех серверов узлов будут считываться из локальных каталогов проекта; при сохранении изменений в шаблонах серверов соответствующие данные на других узлах будут синхронизироваться в режиме реального времени.
2) Совместное использование файлового сервера: этот режим будет работать, когда файловый сервер включен. В частности, при хранении шаблонов и других файлов ресурсов на файловом сервере файлы ресурсов каждого узла будут считываться с файлового сервера.
FTP, SFTP и HDFS в настоящее время являются жизнеспособными файловыми серверами.
Кластерная коммуникация
Прежде чем разрешить использование кластера, пользователи могут выбрать один протокол связи кластера: TCP или UDP. Если сервер разрешает многоадресную рассылку, выберите UDP, в противном случае TCP. Протокол по умолчанию — TCP.
Различия между TCP и UDP:
|
TCP |
UDP |
|
|
Связь |
Да |
Нет |
|
Уровень системных ресурсов |
Высокий |
Низкий |
|
Структура программы |
Сложный |
Простой |
|
Корректность данных |
Гарантировано |
Не гарантировано |
|
Последовательность данных |
Гарантировано |
Не гарантировано |
|
Сценарий применения |
Большая нагрузка на сеть, быстрый ответ |
|
|
Разъем |
socket (pf_inet, sock_stream, 0) |
socket (pf_inet,sock_dgram,0) |
|
Отправка и получение данных |
отправить/получить |
отправить/получить из |
|
Адрес подтверждающий |
При подключении/принятии |
Назначается каждый раз в функции sendto/recvfrom |







