Skip to content

Поддержка среды и конфигурации для развертывания инженерных кластеров

в общих чертах

В этой статье дается краткое описание:

  • Поддерживаемые среды развертывания для развертывания кластеров Sailsoft
  • Требования, которые должны быть выполнены при развертывании кластера Sailsoft
  • Типы поддержки компонентов кластера

Примечание 1: В этом документе приведен полный перечень сред поддержки развертывания. Рекомендуется обратиться к этому документу, чтобы выбрать наиболее подходящую среду развертывания: Engineering Deployment Recommended Environment

Примечание 2: В этой статье перечислены среды, в которых Sailsoft прошла тестирование.

  • Более низкие версии, не упомянутые в этой статье, обычно не поддерживаются по умолчанию
  • Более высокие версии, не представленные в этой статье, могут быть протестированы и проверены пользователем. Если после использования возникли проблемы, платные пользователи могут обратиться за помощью в техническую поддержку. Контакты технической поддержки: перейдите в раздел " Услуги ", выберите "Онлайн-поддержка" или позвоните по телефону "400-811-8890".

Примечание 3: Для всех видов компонентов кластера (таких как Nginx/Redis/внешняя база данных и т. д.) в документе перечислены только поддерживаемые версии, при выборе конкретного метода развертывания рекомендуется обращаться к документации конкретного производителя.

Общие требования к серверу

Серверные операционные системы

(1) Для развертывания приложений Sailsoft и компонентов кластера предпочтительно использовать операционную систему Linux.

  • Версия системы: Ubuntu 18.04.4 и выше
  • Ядро системы: 3.10 и выше
  • Архитектура системы: X86_64

(2) FanSoft предоставляет инструмент "Cluster Environment Detection Tool " для определения соответствия среды серверной системы требованиям к развертыванию кластера.

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

Примечание: Сравнительный анализ Linux и Windows смотрите в разделе: Сравнительный анализ Linux и Windows

формаоперационная системаПроверенный номер версии
LinuxCentos6Centos 6.5, Centos 6.6, Centos 6.7, Centos 6.8, Centos 6.9
Centos7Centos 7.0, Centos 7.1, Centos 7.2, Centos 7.3, Centos 7.4Centos 7.6, Centos 7.8, Centos 7.9
RedHat6RedHat 6.5, RedHat 6.6, RedHat 6.7, RedHat 6.8, RedHat 6.9
RedHat7RedHat 7.0, RedHat 7.1, RedHat 7.2, RedHat 7.3, RedHat 7.4RedHat 7.7
UbuntuUbuntu 10.04.4, Ubuntu 18.04, Ubuntu 20
Amazon LinuxAmazon Linux AMI выпуск 2018.03
Windows (компьютер)Windows Server 2008 ивышеWindows 11

Дисковое пространство сервера

каталог (на жестком диске компьютера)Соответствует английским -ity, -ism, -izationТребования к конфигурации
Инженерное развертываниеИспользуется для развертывания проектов, хранения файлов ресурсов шаблонов проектов и т. д.500 Гб или более
корневой каталог**Сохраненное содержимое:Для приложений sailsoft это временный кэш, когда система используется.FineBI60Для кластерных компонентов это относится к различным кэшам во время выполнения компонентаКаталог Расположение:**1) Для проектов, запущенных пользователем root в системах linuxКорневой каталог находится в каталоге /root2) Для проектов, запущенных нерутовыми пользователями на системах linuxКорневой каталог в каталоге /home/$username/3) Для проектов, начатых в WindowsКорневая директория находится в каталоге C:\Users\UsernameНе менее 40G
каталог /usrПуть хранения журнала по умолчаниюНе менее 15G
каталог /homeКаталог хранения файлового сервера для шаблонов и других файлов ресурсовНе менее 10G

Подготовка портов сервера

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

2) Информация о том, занят порт или нет, приведена в разделе: Просмотр занятости порта. Если порт по умолчанию конфликтует с другими проектами, необходимо сначала изменить порт, а затем открыть соответствующий порт.

(3) Если на одном сервере развернуто несколько проектов Tomcat, вам необходимо изменить номер порта Tomcat, чтобы предотвратить конфликты портов, см. раздел: Изменение номера порта Tomcat

4) Если брандмауэр включен, необходимо открыть соответствующий номер порта:

5) Для контейнеров docker или сред, где порты между серверами строго ограничены, необходимо открыть порты между серверами на узлах для межузлового взаимодействия.

  • Для восьми портов выбран протокол TCP 7800/7810/7820/7830/7840/7850/7860/7870.
  • Выберите протокол UDP от 45588 до 65536 случайных портов
категоризацияэлементпортыпримечание
балансировка нагрузкиNginx80 или 443Внешний порт, должен быть открыт для публики, может быть изменен (nginx.conf), является входным портом кластерной системы, другие порты балансировки нагрузки настраивайте самостоятельно
промежуточное ПОTomcat8080Внешние порты, не открытые для публики, могут быть изменены (server.xml), SSL, короткий адрес и т. д. в конфигурации уровня балансировки нагрузки
WebLogic7001
WebSphere9080
уведомление о сообщенииПорт Websocket48888/49888Дополнительную информацию см:Контейнерное решение WebsocketКонфигурация кластера Порты WebSocket
Порт переадресации Websocket48889
файловый серверFTP20, 21Внутренний порт, модифицируемый (самодействующий)
SFTP22Внутренний порт, не подлежит изменению
HDFS9000Внутренний порт, модифицируемый (самодействующий)
полноправный серверredis standalone6379Внутренний порт, изменяемый (redis.conf)
кластер redis/Внутренние порты, измените их в соответствии с конфигурацией (redis.conf)
Связь между узлами кластераВнутрикластерная связь между узлами7800, 7830, 7840, 7850, 7870Просто нужно, чтобы узлы были открыты друг для друга

Требования к серверной сети

(1) Приложения и компоненты кластера FanSoft могут быть развернуты как в публичной, так и в интранет-среде. Как показано в таблице ниже:

типологияполосы пропусканиясегмент сети
открытая сеть10M или болееИнженерные узлы, компоненты кластера, внешние базы данных в одном сегменте сети
интранетИнтранет обычно имеет пропускную способность 100 Гбит/гигабит, поэтому требования к пропускной способности отсутствуют.Инженерные узлы, компоненты кластера, внешние базы данных в одном сегменте сети

2) Необходимо поддерживать связь между отдельными узлами проекта, компонентами кластера и внешними базами данных.

  • Пользователи Linux: используйте инструмент Cluster Environment Detection для автоматического определения системного окружения или воспользуйтесь оператором ping.
  • Пользователи Windows: для обнаружения используйте оператор ping или telenet.

Разработка требований к развертыванию

Требования к конфигурации сервера

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

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

На одном сервере может быть развернут только один инженерный узел кластера, поэтому для определения количества инженерных узлов требуется определенное количество серверов.

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

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

Описание размеров пользователя:

Тип пользователяинструкции
Количество ежедневных пользователейКоличество пользователей, вошедших в систему FineBI Engineering за один день
Количество онлайн-пользователейКоличество пользователей, одновременно вошедших в проект FineBI
Количество одновременных пользователейКоличество пользователей, одновременно выполняющих операции над проектом FineBIТо есть, сколько пользователей одновременно отправляют запросы на сервер, то есть, сколько запросов, отправленных пользователями, обрабатывается сервером в одно и то же время.
Ограничение параллельности при регистрации лицензийСтатистика на основе IP-адреса, сервер получает IP-адрес из запроса в качестве параллельного ключаЭтот параметр Lic не связан с количеством пользователей, указанных ниже.

Непосредственно подключенные данные

Описание сценария: используйте только непосредственно подключенные данные, а не извлеченные.

Пропускная способность между узлами кластера и между узлами и другими компонентами 1000 Мбит/с.

В зависимости от параллельности проекта и вычислительной мощности БД источника данных выбирайте более высокую конфигурацию, если она попадает в несколько диапазонов конфигураций;

Edit Concurrent Correspondence Cache Not Hit;

Верхний предел количества одновременных пользователей в секунду соответствует попаданиям в кэш, а нижний - непопаданиям в кэш.

Количество ежедневных пользователейКоличество онлайн-пользователейпочасоваяКоличество одновременных пользователейкаждая секундакомпиляторпараллелизмВычислительная мощность источника данныхКоличество вычислений, обрабатываемых в секундуРекомендуемые конфигурацииминимальная конфигурация
500<100<20<20<10Автономный, узлы встречаются: CPU: 8 ядер 16 потоков 2.5GHZ Память JVM: 16 ГБ Физическая память: 24 ГбАвтономный, узел удовлетворен:Процессор: 4 ядра 8 потоков 2,5 ГГцПамять JVM: 8 ГБФизическая память: 12 Гб
2K100~1K40~9010~4010~20Кластер из 2 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 16 ГБФизическая память: 32 ГбАвтономный, узел удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 16 ГБФизическая память: 24 Гб
3K600~1.5K60~13030~60≥30Трехузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 16 ГБФизическая память: 24 Гб2-узловой кластер, каждый узел встречается: CPU: 16 ядер, 32 потока, 2.5GHZ. Память JVM: 24 ГБ Физическая память: 48 Гб
4K600~2K60~17060~80≥30Кластер из 4 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 16 ГБФизическая память: 24 ГбТрехузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 24 ГБФизическая память: 48 Гб

Извлеченные данные: анализ Self-service с высокой ежедневной активностью

Описание сценария: проект FineBI с большим количеством ежедневных пользователей, Self-service пользователей при анализе данных (соответствующий запрос FineBI не попадает в кэш).

Суммарное количество узлов оценивает параллелизм: количество онлайн-пользователей Y = 300 * (количество узлов X-1) + 400.

Требования к пропускной способности и пропускной способности диска превышают 100 МБ/с (обычная производительность локального жесткого диска HDD), рекомендуется использовать твердотельные накопители SSD.

Память JVM ≠ вся память машины, рекомендуется, чтобы память JVM занимала 2/3 ~ 3/4 всей памяти машины.

Количество онлайн-пользователейпочасоваяКоличество одновременных пользователейкаждая секундакомпиляторпараллелизмКоличество столов/размер столаРекомендуемые конфигурацииминимальная конфигурация
<100<20<20<100 листов/<1TАвтономный, узлы встречаются: CPU: 8 ядер 16 потоков 2.5GHZ Память JVM: 16 ГБ Физическая память: 32 ГбАвтономный, узел удовлетворен:Процессор: 8 ядер, 16 потоков, 2,5 ГГц.Память JVM: 16 ГБФизическая память: 32 Гб
300~1K20~7010~40<100 листов/<1TКластер из 2 узлов, каждый из которых удовлетворен:Процессор: 8 ядер, 16 потоков, 2,5 ГГц.Память JVM: 16 ГБФизическая память: 32 ГбАвтономный, узел удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 Гб
600~2K40~12030~60>2k листов/>1TДвухузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбКластер из 2 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 24 ГБФизическая память: 48 Гб
900~3K50~16050~80>4k листов/>2TТрехузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбКластер из 2 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 24 ГБФизическая память: 48 Гб
1.2K~3.5K60~19070~100>5 тыс. листов/>3TКластер из 4 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбТрехузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 Гб
1.5K~4K80~22080~200>5 тыс. листов/>3TКластер из 5 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбКластер из 4 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 Гб

Извлечение данных: панель одновременного просмотра

Сценарий: соответствует таким сценариям, как одновременный просмотр отчетов пользователями. То есть суммарное количество пользователей, обращающихся к Y, обычно составляет 5-10 минут (что соответствует полному попаданию в кэш запросов FineBI, то есть несколько одинаковых вычислительных запросов могут напрямую попасть в результаты возврата).

Суммарное количество узлов для оценки параллелизма: 5 минут одновременных пользователей Y = 380*количество узлов X

Когда количество запрашивающих пользователей в секунду достигает 160, скорость загрузки сервера балансировки нагрузки должна быть высокой и достигать 100 МБ/с.

Память JVM ≠ вся память машины, рекомендуется, чтобы память JVM занимала 2/3 ~ 3/4 всей памяти машины.

количество пользователейКаждые 5 минутколичество пользователейкаждая секундаРекомендуемые конфигурацииминимальная конфигурация
~400402-узловой кластер, каждый узел встречается: CPU: 8 ядер 16 потоков 2.5GHZ Память JVM: 16 ГБ Физическая память: 32 ГбАвтономный, узел удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 Гб
400~80080Кластер из 2 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбДвухузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 24 ГБФизическая память: 48 Гб
800~1.1K110Трехузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбТрехузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 24 ГБФизическая память: 48 Гб
1.1K~1.6K160Кластер из 4 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбТрехузловой кластер, каждый узел которого удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 Гб
1.6K~2K190Кластер из 5 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 ГбКластер из 4 узлов, каждый из которых удовлетворен:Процессор: 16 ядер, 32 потока, 2,5 ГГц.Память JVM: 32 ГБФизическая память: 64 Гб

Другие требования к серверу

категоризацияинструкциисправочный документ
языковое требованиеПри развертывании проекта на Linux носителям китайского языка следует проверить наличие китайского языкового пакета в своей системе.Установка китайских языковых пакетов в системах Linux
требование к полномочиямЧтобы проект работал правильно, папке проекта должно быть присвоено разрешение не менее 755.Конфигурация разрешений файлов в Linux
синхронизацияПроверьте, совпадает ли системное время на сервере каждого инженерного узла.Несоответствие может привести к недоступности кластера и проблемам с синхронизациейКак в системе Linux настроить согласованность времени между узлами?

Требования к среднему программному обеспечению

Развертывание в контейнерах/развертывание пакетов К этому разделу готовиться не нужно. продукты имеют встроенные JDK и серверы приложений. встроенные JDK - это OpenJDK.

Автономное развертывание требует подготовки этого раздела. Вам необходимо предоставить собственный сервер приложений и JDK.

FineBI - это чисто Java-сервлетное приложение, которое должно быть развернуто под Tomcat, WebLogic, WebSphere и другим промежуточным программным обеспечением.

Приложение FineBI Servlet загружается при запуске промежуточного ПО, и проект будет работать правильно.

промежуточное ПОВерсия промежуточного ПОВерсия JDK
TomcatМы рекомендуем использовать последнюю версию Tomcat8.Примечание: Использование рекомендуемой версии уменьшает проблемы безопасности, вызванные низкими версиями Tomcat.Поддержка Tomcat версий 7.0~9.0Tomcat версии 10.0 не поддерживаетсяJDK 1.8 с минорной версией JDK8u102 или выше.Примечание 1: Если версия JDK не соответствует этому требованию, вы можете столкнуться с проблемами при развертывании начальной установки.Примечание 2: Версия JDK должна соответствовать операционной системе, например, 32-битные системы могут использовать только 32-битный JDK.Примечание 3: OpenLogic OpenJDK не поддерживается.
WebLogicWeblogic 12.2.1.3 и выше
WebSphereWebSphere 8.5
JBossJBoss6 и выше
СмолаСмола-4.0.58

1) Соображения по развертыванию промежуточного ПО:

  • Чтобы запустить FineBI в контейнере docker, убедитесь, что объем оперативной памяти превышает 8 Гб.
  • Рекомендуется использовать распакованную версию Tomcat и JDK.
  • Несколько проектов FineBI не могут быть развернуты в одном промежуточном ПО.
  • Если у вас установлено более одного Tomcat, не рекомендуется настраивать CATALINA_HOME или TOMCAT_HOME в вашей среде. В противном случае, независимо от того, какой Tomcat запускает пользователь, будет запущен тот, который указан в CATALINA_HOME.
  • Программное обеспечение Middleware не следует устанавливать на физические компьютеры или виртуальные машины VM, на которых также работают ресурсоемкие приложения, такие как базы данных или серверы приложений.

Согласно рекомендациям по процессорам, необходимо убедиться, что FineBI действительно может занимать 80 % ресурсов.

2) Указания по установке JDK на системы Windows:

  • Переменная окружения JAVA_HOME должна быть там, путь должен быть в %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
  • Если в каталоге %JRE_HOME%/bin, на который указывает переменная окружения, нет файла attach.dll, необходимо скопировать attach.dll из каталога %JAVA_HOME%/jdk/jre/bin по этому пути, иначе Tomcat сообщит об ошибке после запуска: fine assist start не удалось

Подготовка прикладной техники

Для развертывания контейнеров/пакетов развертывания не нужно готовить этот раздел, в продукт встроен совершенно новый проект. После развертывания нового проекта необходимо самостоятельно установить имя пользователя и пароль для входа в платформу.

Самостоятельное развертывание требует подготовки к этому разделу.

  • Чтобы развернуть проект, подготовьте папку webroot в %BI_HOME%\webapps.
  • Вам нужно заранее подготовить проект, существующий проект или перезагрузить последний проект.
  • Если вы используете существующий проект для развертывания, имя пользователя и пароль для входа в платформу будут соответствовать имени и паролю существующего проекта.

Требования к внешним базам данных

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

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

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

Требования к конфигурации сервера

Занятость необходимо регулировать в зависимости от степени использования, можно настроить в соответствии с размером папки webapps/webroot/WEB-INF/embed/finedb, а на основе фактического размера будущего использования прогнозировать размер будущего, увеличенный в 1 - 2 раза.

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

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

Тип конфигурацииминимальная конфигурацияРекомендуемые конфигурации
Количество серверов12, режим "ведущий-ведомый
физическая память8 ГБ16 ГБ
ПРОЦЕССОР2,4 ГГц и выше4-ядерный, 8-поточный2,5 ГГц или выше 8 ядер и 16 потоков
скорость сети50 Мбит/с100 Мбит/с
Свободное дисковое пространство100 Гбит/с или болееВ корневом каталоге должно быть не менее 40 Гб свободного дискового пространства.100 Гбит/с или болееВ корневом каталоге должно быть не менее 40 Гб свободного дискового пространства.
Скорость чтения/записи дисков50 МБ/с100 МБ/с

Требования к типу базы данных

Неконтейнерные развертывания требуют подготовки к этой главе. В контейнерных развертываниях не нужно готовить содержимое этого раздела; база данных MySQL автоматически устанавливается и выводится наружу.

Тип базы данныхПоддерживаемые версии баз данныхМетод конфигурирования
RDS MySQL-Настройка внешней базы данных MySQL5
MySQL5.1.73, 5.5.31, 5.5.46, 5.5.56, 5.6.22, 5.6.31, 5.7.16
8.0.11, 8.0.16, 8.0.20Настройка внешней базы данных MySQL8
Oracle10g, 11g, 12cНастройка внешней базы данных Oracle
SQL Server2000, 2005, 2008, 2012, 2014, 2016Настройка внешней базы данных SQL Server
2017
DB29.7, 8.2, 11.1Настройка внешней базы данных DB2
PostgreSQL9.4.7, 9.5.0, 9.5.2, 9.6.0Настройка внешней базы данных PostgreSQL

Требования к балансировке нагрузки

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

Балансировщик нагрузки может распределять запросы пользователей по различным узлам с помощью различных алгоритмов для повышения производительности и балансировки нагрузки.

Требования к конфигурации сервера

Тип конфигурацииинструкции
Количество серверовЕсли есть возможность, рекомендуется развернуть балансировку нагрузки, серверы состояния, файловые серверы и компоненты внешней библиотеки конфигурации на отдельных серверах.Если нет, то хотя бы убедитесь, что для развертывания этих компонентов доступен отдельный сервер.
физическая память8G
ПРОЦЕССОР2,5 ГГц или выше 8 ядер и 16 потоков
Свободное дисковое пространство100 Гбит/с или болееВ корневом каталоге должно быть не менее 40 Гб свободного дискового пространства.
Компилятор GCCРазвертывание Nginx на системах Linux зависит от компилятора GCC.Убедитесь, что в вашей системе есть среда компиляции GCCКоманда запроса: gcc -vКоманда установки: yum install gcc gcc-c++
требование к сети(1) Каждый компонент и прикладная техника должны находиться в одном сегменте сети, чтобы избежать сетевых колебаний и других проблем.(2) Для каждого компонента и приложения в общедоступной сетевой среде пропускная способность должна быть более 10M(3) Компоненты и прикладная техника должны быть объединены в сеть и доступны через порты друг друга.

Требования к типу балансировки нагрузки

Неконтейнерные развертывания требуют подготовки к этому разделу. Контейнерные развертывания не требуют подготовки к этому разделу; Nginx устанавливается автоматически.

Keepalived+Nginx рекомендуется для кластеров с высокой доступностью, а Nginx - для стандартных кластеров.

Балансировка нагрузки Apache не поддерживается.

балансировка нагрузкикраткое содержание
Keepalived+Nginx**Синопсис:**Keepalived+Nginx - жизнеспособное решение для обеспечения высокой доступности и балансировки нагрузки.Keepalived следит за состоянием нескольких серверов Nginx, поэтому при выходе из строя одного из них он может автоматически занять его IP-адрес и перенаправить все запросы на другие нормальные серверы.Это обеспечивает высокую доступность веб-сервисов и позволяет избежать перебоев в обслуживании, вызванных единственной точкой отказа.**Плюсы:**Высокая доступность: Keepalived отслеживает состояние сервера и автоматически выполняет обход отказа для обеспечения высокой доступности сервисов.Балансировка нагрузки: Nginx распределяет запросы по разным серверам, чтобы добиться балансировки нагрузки и повысить производительность и пропускную способность системы.Обратный прокси: Nginx предоставляет функцию обратного прокси для перенаправления запросов на различные веб-серверы, чтобы обеспечить эффективность работы веб-сервисов.Недостатки:Сложная настройка: Keepalived + Nginx требуют сложной конфигурации, требующей определенного технического уровня и опыта.Требуется больше аппаратных или виртуальных ресурсов, требуется не менее двух серверов, требуются дополнительные инвестиции в аппаратные или виртуальные ресурсыДокументация:План развертывания Keepalived+Nginx
NginxВведение: Nginx - это высокопроизводительный, высоконадежный веб-сервер с открытым исходным кодом и обратный прокси-сервер.Широко используется для балансировки нагрузки, веб-кэширования, контроля безопасности и т.д.**Плюсы:**Поддержка различных алгоритмов обратного прокси и балансировки нагрузки, высокая производительность и высокая пропускная способность, простая конфигурация, легкость расширенияОчень хорошая производительность параллелизма в системах Linux при очень малом объеме занимаемой памяти и доказанной стабильности и производительности.Недостатки:Интеграция между различными модулями недостаточно полная и может стать препятствием для новичковВ системах Windows могут возникнуть проблемы с параллелизмом, если потребность в параллелизме превышает 200Документация:Установка и настройка Nginx в системах LinuxУстановка и настройка Nginx для Windows
TraefikВведение: Traefik - это современный инструмент динамической балансировки нагрузки для Windows.Плюсы:Не требует установки, просто запускается из командной строки, очень прост в развертывании и использовании!Поддержка автоматического обновления конфигураций обратного прокси и балансировки нагрузкиХорошая производительность в системах WindowsМинусы: Для некоторых функций требуются расширенные версии, обновленные версии недостаточно стабильныДокументация:установка системы windows настройка Traefik
AWS ELBВведение: AWS ELB - это сервис балансировки нагрузки, предоставляемый облачными вычислительными службами Amazon, включающий классическую балансировку нагрузки, балансировку нагрузки приложений и балансировку нагрузки сети трех типов, может достигать балансировки нагрузки различных протоколовПреимущества: доступность и надежность, поддержка множества протоколов, возможность быстрого развертывания, простота в обслуживанииМинусы: Более высокая стоимость, более сложная конфигурация и управление правами
F5Введение: F5 - компания, предоставляющая услуги для веб-приложений и выпускающая продукты, включая балансировку нагрузки, защиту приложений и т. д.Преимущества: высокая доступность и надежность, поддержка различных сценариев и типов приложений, передовые решения для обеспечения безопасности приложений.Минусы: Высокая цена, более сложная настройка, требуется техническая поддержка

Требования к серверу состояния

Сервер состояния - это сервисный компонент, который используется для хранения информации о состоянии узлов кластера, например о рабочем состоянии узла, его загрузке и обработке задач.

Она позволяет динамически распределять задачи между соответствующими узлами и помогает администраторам отслеживать состояние кластера и планировать его работу в режиме реального времени.

Требования к конфигурации сервера

Тип конфигурацииинструкции
Количество серверовЕсли есть возможность, рекомендуется развернуть балансировку нагрузки, серверы состояния, файловые серверы и компоненты внешней библиотеки конфигурации на отдельных серверах.Если нет, то хотя бы убедитесь, что для развертывания этих компонентов доступен отдельный сервер.
JVM/физическая память4 г/8 г
ПРОЦЕССОР2,5 ГГц или выше 8 ядер и 16 потоков
Свободное дисковое пространство100 Гбит/с или болееВ корневом каталоге должно быть не менее 40 Гб свободного дискового пространства.
Компилятор GCCРазвертывание Redis на системах Linux основано на компиляторе GCC.Убедитесь, что в вашей системе есть среда компиляции GCCКоманда запроса: gcc -vКоманда установки: yum install gcc gcc-c++
сетевые требования(1) Каждый компонент и прикладная техника должны находиться в одном сегменте сети, чтобы избежать сетевых колебаний и других проблем.(2) Для каждого компонента и приложения в общедоступной сетевой среде пропускная способность должна быть более 10M(3) Компоненты и прикладная техника должны быть объединены в сеть и доступны через порты друг друга.

Требования к типу сервера состояния

Неконтейнерные развертывания требуют подготовки к этому разделу. Контейнерные развертывания не требуют подготовки к этому разделу; автономный Redis устанавливается автоматически.

В кластерном решении SailSoft поддерживаются следующие серверы: Redis Standalone, Redis Cluster, Redis Sentinel.

Кластеры Redis рекомендуются для кластеров с высокой доступностью, а Redis standalone - для стандартных кластеров.

полноправный серверинструкции
Redis Standalone**Синопсис:**Автономный режим Redis - это самый простой способ развертывания Redis, при котором развертывается только одно приложение RedisОн также является самым простым в использовании: всего три элемента конфигурации: хост, порт и пароль.Преимущества: простота настройки и управления, отсутствие необходимости рассматривать такие вопросы, как разделение и кластеризация данных, низкие эксплуатационные расходы.Недостатки: подверженность единой точке отказа, пропускная способность ограничена одним сервером, невозможно обеспечить высокую доступность и балансировку нагрузки.Документация:Установка и настройка автономного Redis в системе LinuxУстановка и настройка автономного Redis в системе Windows
Кластер RedisВведение: Кластеризация Redis - это развертывание Redis на основе шардинга, при котором данные распределяются по нескольким узлам, что позволяет достичь горизонтального масштабирования и высокой доступности. Обычно используется шесть узлов Redis в режиме "три ведущих, три ведомых".Преимущества: После выхода из строя ведущего узла на основе механизма голосования ведомые узлы могут автоматически подняться до ведущего узла, что позволяет повысить доступность сервиса Redis. Разделение данных и их хранение на разных мастер-узлах может значительно улучшить поддержку производительности сервиса Redis.Недостатки: Кластеры Redis требуют больше ресурсов, а затраты на эксплуатацию и обслуживание будут выше, необходимо как минимум три сервера, а рекомендуется подготовить шесть серверов.Поскольку данные хранятся в разделах, при выходе из строя ведущего узла и соответствующих ему ведомых узлов весь кластер Redis становится непригодным для использования.Если количество выживших мастер-узлов составляет менее половины от общего числа узлов, весь кластер Redis также не сможет предоставлять услуги.Документация:Установка и настройка кластера Redis в системе Linux
Redis SentinelВведение: Redis Sentinel - это централизованное решение для обеспечения высокой доступности Redis, которое автоматически отслеживает состояние узлов Redis, а при отказе одного из узлов автоматически переключается на другой. В основном состоит из ведущего узла, нескольких ведомых узлов и нескольких дозорных, обычно один ведущий, два ведомых и три дозорных.Плюсы: Обеспечивают более высокую доступность, применимы для Redis standalone и Redis cluster. У Redis Sentinel есть только один ведущий узел, когда ведущий узел выходит из строя, дозорный выбирает ведомый узел, который подменяет ведущий узел.Недостатки: Необходимость занимать некоторые системные ресурсы, необходимость регулярно проверять состояние Redis, невозможность горизонтального масштабирования Производительность чтения и записи в Redis Sentinel не так хороша, как в кластере Redis, поскольку в кластере Redis для чтения и записи используется несколько мастер-узлов, поэтому он не поддерживает высокий параллелизмДокументация:Redis Sentinel Mode Plugin

Требования к файловому серверу

Файловый сервер - это компонент кластера, который хранит данные отчетов и вложения. Он централизованно управляет файлами и обменивается ими между узлами кластера, чтобы обеспечить согласованность и высокую доступность файловых данных.

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

Требования к конфигурации сервера

Тип конфигурацииинструкции
Количество серверовЕсли есть возможность, рекомендуется развернуть балансировку нагрузки, серверы состояния, файловые серверы и компоненты внешней библиотеки конфигурации на отдельных серверах.Если нет, то хотя бы убедитесь, что для развертывания этих компонентов доступен отдельный сервер.
физическая память8g
ПРОЦЕССОР2,5 ГГц или выше 8 ядер и 16 потоков
Свободное дисковое пространство500G~1TВ корневом каталоге должно быть не менее 40 Гб свободного дискового пространства.Пожалуйста, расширьте список, чтобы использовать его в будущем
права пользователяLinux-системам необходимо использовать старшего пользователя (root) при установке FTP, иначе она не может быть выполнена, если вы не устанавливаете FTP, то пренебрегайте этим требованием
сетевые требования(1) Каждый компонент и проект приложения рекомендуется размещать в одном сегменте сети, чтобы избежать колебаний сети и других проблем. (2) Каждый компонент и прикладная техника в общедоступной сетевой среде, пропускная способность должна быть более 10M. (3) Каждый компонент и приложение должны быть гладкой сети между друг другом порт может быть доступен.

Требования к типу файлового сервера

Неконтейнерные развертывания требуют подготовки к этому разделу. Контейнерные развертывания не требуют подготовки к этому разделу; MinIO устанавливается автоматически.

FanSoft поддерживает различные файловые серверы. Ниже описаны преимущества и недостатки каждого типа файловых серверов.

NAS рекомендуется для кластеров с высокой доступностью, а SFTP - для стандартных кластеров.

Рекомендуемый уровень: SFTP≈MinIO>NFS>FTP≈HDFS

типологияvantage
SFTPВведение: SFTP - это протокол передачи зашифрованных файлов по протоколу SSH.Плюсы: легко развертывается, поставляется с Linux, более безопасен и стабилен по сравнению с FTP**Недостатки:**Невысокодоступное решение, которое при выходе из строя затрагивает весь сервис.Поскольку при передаче данных по SFTP используется технология шифрования/дешифрования, эффективность передачи значительно ниже, чем при обычном FTP.Документация:Конфигурирование системы Linux с помощью SFTPНастройка системы Windows с помощью SFTP
FTPВведение:FTP является протоколом передачи файлов, может быть достигнуто через FTP-сервер загрузки, скачивания и управления файлами и другие функцииПлюсы: высокая стабильность, хорошая производительность, высокая скорость чтения/записиНедостатки: не является высокодоступным решением, простои влияют на весь сервис.Документация:Установка и настройка системы Linux FTPКонфигурация системы Windows Служба FTP
HDFSВведение: HDFS - это аббревиатура от Hadoop Distributed File System, файловая система, основанная на архитектуре распределенного хранения, которая может хранить большие файлы данных и поддерживать такие операции, как анализ и добыча больших данных.Преимущества: высокодоступное решение, распределенная файловая система с высокой степенью отказоустойчивостиНедостатки: сложность развертывания, высокая стоимость эксплуатации и обслуживания, рекомендуется выбирать это решение тем компаниям, у которых уже есть сервисы HDFS.Документация:Хранилище ресурсов HDFS
MinIOВведение: MinIO - это легкий сервер хранения объектов с открытым исходным кодом, который может работать в любой среде и поддерживает различные API облачных хранилищ.Преимущества: MinIO - это простота развертывания и управления, высокая производительность и низкая стоимость.Минусы: Есть некоторые недостатки в инженерном обеспеченииДокументация:Репозиторий ресурсов MinIO
S3Введение:Используйте в качестве файлового сервера облачную файловую систему хранения данных, поддерживающую протокол S3, в том числе AliCloud OSS, Huawei Cloud OBS, Amazon Cloud S3.Преимущества: облачные хранилища, высокодоступные решения, с высокой степенью отказоустойчивости, клиентам, у которых уже есть хранилища такого типа, стыковка очень удобнаНедостатки:Поддерживаются только некоторые S3, самостоятельно созданные S3 не обязательно поддерживаютсяВ сценариях восстановления резервных копий могут возникать задержкиДокументация:Хранилище ресурсов S3
Общие внешние каталогиВведение: Общее внешнее хранилище - это способ подключения внешнего хранилища к серверу, который позволяет использовать такие функции, как общие папки и общий доступ к сети.**Плюсы:Аппаратное хранилище (NAS): высокая стабильность, пространство для хранения, как правило, большоеПрограммное хранилище (NFS): простое в развертывании, зрелое решениеНедостатки:**Аппаратные системы хранения данных (NAS): высокая стоимость и неполная доступность, простои также влияют на услуги.Программное хранилище (NFS): не является высокодоступным, когда сервер выходит из строя, клиент больше не может предоставлять услуги.Документация:общий внешний каталог

Другие требования к конфигурации кластера

режим кэширования

Режим кэширования был добавлен и может быть выбран во внешнем интерфейсе. Кэш и файловые серверы могут увеличить высокую доступность файловых серверов при совместном использовании, и ниже описано, как его выбрать.

1) Функция кэша

Кэшированные файлы ресурсов: содержат файлы отчетов, панели управления, файлы конфигурации, данные карт и т. д. В настоящее время существует четыре папки: "reportlets/", "resources/", "assets/" и "dashboards".

Активный кэш: все файлы ресурсов будут кэшированы при запуске проекта, а последующее использование практически не отличается от пассивного кэша.

Пассивное кэширование: кэшируются только те файлы ресурсов, к которым осуществляется доступ.

2) Роль кэширования

Плюсы:

  • Улучшение высокой доступности файлового сервера. Если при использовании файлового сервера включен кэш, то когда файловый сервер не работает, система считывает файлы ресурсов из кэша и может продолжать нормально предоставлять услуги внешнему миру.
  • Кэширование позволяет избежать частого чтения и записи файлов, работает быстрее и может значительно повысить производительность доступа к шаблонам.

Недостатки:

  • Кэширование занимает системную память и ресурсы жесткого диска.
  • Из-за разделения кластера и других нестабильностей кэш может иногда не синхронизироваться, и это можно сделать, обновив кэш вручную через интерфейс.

Подводя итог, можно сказать, что включение кэширования может значительно повысить производительность проекта, а при использовании файлового сервера - улучшить высокую доступность системы, поэтому рекомендуем вам рассмотреть возможность включения кэширования при использовании файлового сервера.

протокол связи

SailSoft Cluster поддерживает протоколы TCP и UDP, по умолчанию используется протокол TCP, ниже приведен список различий между этими двумя протоколами:

TCPUDP
затиркана основе соединениябез соединения
Требования к системным ресурсамподробнееменьше
структура программызатейливыепроще
Корректность данныхобещаниенегарантированный
последовательность данныхобещаниенегарантированный
сценарий примененияБольшая нагрузка на сеть и высокая потребность в оперативном реагировании
сокетsocket(PF_INET,SOCK_STREAM,0)socket(PF_INET,SOCK_DGRAM,0)
передача и прием данныхотправка/отправкаотправлять/получать от
Определение адресной информацииОпределяется при подключении/приемеАдресная информация должна указываться каждый раз в функции sendto/recvfrom.

Следует отметить, что большинство облачных серверов (AliCloud, Amazon Cloud и т. д.) не поддерживают протокол UDP, поэтому вы можете выбрать только протокол TCP.

Если сервер поддерживает оба протокола TCP/UDP, то при небольшом количестве узлов нет особой разницы в выборе протоколов TCP/UDP; при большом количестве узлов рекомендуется выбирать протоколы UDP для более эффективного взаимодействия.