1. 概述
為了滿足企業高可用和高併發的業務需求,帆軟支援單機和叢集部署方式。
並可以根據具體的業務負載情況,推薦對應的部署架構,以保證業務的正常穩定運作。
本文根據使用者併發數和伺服器資源,推薦不同的最佳部署方案。
注:推薦使用者使用Linux系統伺服器部署正式工程,本文僅介紹Linux系統&Tomcat中間軟體下的推薦配置,其他不贅述。
部署方案說明:
1)本文所列出的部署方案,均為工程和組件獨佔伺服器時的配置要求(即該伺服器中不再安裝其他內容)。
帆軟單機架構為「工程節點+配置庫(外接finedb)」
帆軟叢集架構為「工程節點+負載均衡+狀態伺服器+檔案伺服器+配置庫(外接finedb)」,架構中各個應用組件,需要針對不同場景進行選擇和搭配。
在實際部署時,可任意選擇技術路線支援範圍內的軟硬體環境。
2)考慮到部分使用者的伺服器資源緊張。
對於工程節點部署方案,本文分別提供推薦配置和最低配置要求。如資源充足,使用推薦配置;如資源緊張,必須至少滿足最低配置。
對於叢集部署方案,本文分別提供高可用和非高可用部署方案。如資源充足,推薦使用高可用部署方案;如資源緊張,可考慮非高可用部署方案。
3)單機工程,無法避免會出現小概率故障時的不可用情況,如需保障高可用建議優先選擇叢集架構部署。
系統效能說明:
1)工程節點數:
叢集場景下,隨着節點數增加,系統能處理的併發數也增加,範本的平均回应時間相近。
雙節點叢集的併發數為單機的兩倍、三節點叢集的併發數為單機的三倍。
2)範本效能:
單機場景下,JVM 記憶體增加,範本的回应時間減少。
叢集場景下,各個節點的併發數相近時,範本的平均回应時間相近。
平台鑑權預覽的方式比不走平台鑑權預覽的方式效能差,因為不同使用者之間不能共享同一結果快取。
2. 工程伺服器環境
2.1 伺服器通用要求
配置項 | 推薦配置 | 最低配置 |
---|---|---|
伺服器類型 | Linux 伺服器 | Linux 伺服器 |
系統版本 | Ubuntu 18.04.4 及以上 | Ubuntu 18.04.4 及以上 |
系統核心 | 3.10 及以上 | 3.10 及以上 |
系統架構 | X86_64 | X86_64 |
可用磁碟空間 | 每個節點所在伺服器可用磁碟空間在500G以上 其中根目錄可用磁碟不可小於40G | 每個節點所在伺服器可用磁碟空間在500G以上 其中根目錄可用磁碟不可小於40G |
中間軟體 | Tomcat9最新版本 JDK 1.8最新版本 | Tomcat8.5.57 及以上版本 JDK 1.8,8u102 以上 |
2.2 不同節點數配置要求
一個伺服器只能部署叢集的一個工程節點,因此需要幾個工程節點就要準備幾個伺服器。
使用者維度說明:
註冊使用者數:系統註冊了的使用者。
線上使用者數:使用者同時在一定時間段的線上數量(一般註冊人數的 5% - 20% 之間)。
併發使用者數:同時向伺服器傳送請求的使用者數(一般是線上人數的 10% - 25% 左右)。
註冊使用者數 | 線上使用者數 | 併發使用者數 | 推薦配置 70% 場景的平均回应時間低於 3s | 最低配置 70% 場景的平均回应時間低於 5s |
---|---|---|---|---|
2000-5000 | 400-1000 | 0-200 | 單機,節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:16GB 物理記憶體:32G | 單機,節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:8GB 物理記憶體:16G |
4000-10000 | 800-1500 | 200-300 | 單機,節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G | 單機,節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:16GB 物理記憶體:32G |
6000-12000 | 1200-2500 | 300-500 | 2節點叢集,每個節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G | 單機,節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G |
8000-20000 | 1600-4000 | 500-800 | 3節點叢集,每個節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G | 2節點叢集,每個節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G |
10000-25000 | 2000-5000 | 800-1000 | 4節點叢集,每個節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G | 2節點叢集,每個節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G |
12000-30000 | 2400-6000 | 1000-1200 | 5節點叢集,每個節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G | 3節點叢集,每個節點滿足: CPU:8 核 16 執行緒 2.4GHZ JVM 記憶體:24GB 物理記憶體:48G |
3. 其他組件伺服器環境
3.1 單機
適用物件:
單機工程
應用伺服器:1節點
finedb配置資料庫:MySQL8.0.20以上版本
配置參數:
帆軟單機架構為「工程節點+配置庫(外接finedb)」
本節僅介紹單機其他組件的推薦配置,FineReport工程節點伺服器相關配置要求請參考第二章。
配置項 | 推薦配置 |
---|---|
配置資料庫伺服器(finedb) | |
伺服器數量 | 1 如有條件,建議外接配置庫組件部署在獨立伺服器上 如條件不足,可將外接配置庫組件與FineReport工程部署在同一伺服器上 但至少確定該伺服器為FineReport工程和資料庫獨佔,不再部署其他應用 |
作業系統 | Linux 伺服器 系統版本:Ubuntu 18.04.4 及以上 系統核心:3.10 及以上 系統架構:X86_64 |
網路要求 | 1)配置庫和應用工程建議在同一網段,避免網路波動等問題 2)配置庫和應用工程如處於公網環境,帶寬需在10M以上 3)配置庫和應用工程之間需要網路暢通,互相埠可存取 |
資料庫數量 | 1 |
資料庫類型 | MySQL8 資料庫 資料庫版本:MySQL8.0.20以上版本 資料庫驅動:5.1.49 版本(相容MySQL5和8版本) 資料庫字元集:utf8 資料庫排序規則:utf8_bin 資料庫名稱:只允許包含數字、字母、底線和「.」 資料庫權限:create、delete、alter、update、select、insert、index |
CPU | 2.5GHz以上 8核16執行緒 |
物理記憶體 | 8g |
可用磁碟空間 | 200G以上 |
網速 | 100Mbps |
磁碟讀寫速度 | 100MB/s |
3.2 標準叢集
適用物件:
標準叢集
應用伺服器:不少於2節點
狀態伺服器:Redis單機
檔案伺服器:SFTP
負載均衡:Nginx
配置資料庫:MySQL
配置參數:
帆軟叢集架構為「工程節點+負載均衡+狀態伺服器+檔案伺服器+配置庫(外接finedb)」
本節僅介紹叢集其他組件的推薦配置,FineReport工程節點伺服器相關配置要求請參考第二章。
配置項 | 推薦配置 |
---|---|
共用要求 本節列出的要求,是每一種叢集組件都必須滿足的要求。 | |
伺服器數量 | 如有條件,建議負載均衡、狀態伺服器、檔案伺服器、外接配置庫組件分別部署在不同的獨立伺服器上 如條件不足,至少確定有單獨的伺服器部署這些組件,且組件獨佔該伺服器,不可與FineReport工程部署在同一伺服器上 |
作業系統 | Linux 伺服器 系統版本:Ubuntu 18.04.4 及以上 系統核心:3.10 及以上 系統架構:X86_64 |
GCC編譯器 | Redis 和 Nginx 在 Linux 系統上的部署均依賴 GCC 編譯器 請保證系統具備 GCC 編譯環境 查詢命令:gcc -v 安裝命令:yum install gcc gcc-c++ |
網路要求 | 1)各個組件和應用工程建議在同一網段,避免網路波動等問題 2)各個組件和應用工程如處於公網環境,帶寬需在10M以上 3)各個組件和應用工程之間需要網路暢通,互相埠可存取 |
狀態伺服器 | |
伺服器數量 | 1 |
部署方案 | redis單機 |
JVM/物理記憶體 | 4g/8g |
CPU | 2.5GHz以上 8核16執行緒 |
可用磁碟空間 | 100G以上 其中根目錄可用磁碟不可小於40G |
檔案伺服器 | |
伺服器數量 | 1 |
部署方案 | SFTP |
物理記憶體 | 8G |
CPU | 2.5GHz以上 8核16執行緒 |
可用磁碟空間 | 500G~1T 其中根目錄可用磁碟不可小於40G 後續請根據使用情況擴展 |
注意事項 | Linux系統安裝FTP時需要使用最高使用者(root),否則不能進行,若不安裝FTP則可不考慮這一要求 |
負載均衡 | |
伺服器數量 | 1 |
部署方案 | Nginx 版本推薦1.21及以上版本,優先使用最新版本 |
物理記憶體 | 8G |
CPU | 2.5GHz以上 8核16執行緒 |
可用磁碟空間 | 100G以上 其中根目錄可用磁碟不可小於40G |
配置資料庫伺服器(finedb) | |
伺服器數量 | 1 |
資料庫類型 | MySQL8 資料庫 資料庫版本:MySQL8.0.20以上版本 資料庫驅動:5.1.49 版本(相容MySQL5和8版本) 資料庫字元集:utf8 資料庫排序規則:utf8_bin 資料庫名稱:只允許包含數字、字母、底線和「.」 資料庫權限:create、delete、alter、update、select、insert、index |
CPU | 2.5GHz以上 8核16執行緒 |
物理記憶體 | 8g |
可用磁碟空間 | 200G以上 |
網速 | 100Mbps |
磁碟讀寫速度 | 100MB/s |
3.3 高可用叢集
適用物件:
高可用叢集
應用伺服器:不少於2節點
狀態伺服器:Redis叢集,3主3從
檔案伺服器:NAS
負載均衡:Nginx+Keepalived
配置資料庫:PostgreSQL
配置參數:
帆軟叢集架構為「工程節點+負載均衡+狀態伺服器+檔案伺服器+配置庫(外接finedb)」
本節僅介紹叢集其他組件的推薦配置,FineReport工程節點伺服器相關配置要求請參考第二章。
配置項 | 推薦配置 |
---|---|
共用要求 本節列出的要求,是每一種叢集組件都必須滿足的要求。 | |
伺服器數量 | 如有條件,建議負載均衡、狀態伺服器、檔案伺服器、外接配置庫組件分別部署在不同的獨立伺服器上 如條件不足,至少確定有單獨的伺服器部署這些組件,且組件獨佔該伺服器,不可與FineReport工程部署在同一伺服器上 |
作業系統 | Linux 伺服器 系統版本:Ubuntu 18.04.4 及以上 系統核心:3.10 及以上 系統架構:X86_64 |
GCC編譯器 | Redis 和 Nginx 在 Linux 系統上的部署均依賴 GCC 編譯器 請保證系統具備 GCC 編譯環境 查詢命令:gcc -v 安裝命令:yum install gcc gcc-c++ |
網路要求 | 1)各個組件和應用工程建議在同一網段,避免網路波動等問題 2)各個組件和應用工程如處於公網環境,帶寬需在10M以上 3)各個組件和應用工程之間需要網路暢通,互相埠可存取 |
狀態伺服器 | |
伺服器數量 | redis叢集,三主三從 如有條件,準備6台伺服器,每台伺服器部署一個節點 如條件不足,準備3台伺服器,每台伺服器部署一主一從節點 |
JVM/物理記憶體 | 4g/8g |
CPU | 2.5GHz以上 8核16執行緒 |
可用磁碟空間 | 100G以上 其中根目錄可用磁碟不可小於40G |
檔案伺服器 | |
伺服器數量 | 1 |
部署方案 | NAS |
物理記憶體 | 8G |
CPU | 2.5GHz以上 8核16執行緒 |
可用磁碟空間 | 500G~1T 其中根目錄可用磁碟不可小於40G 後續請根據使用情況擴展 |
負載均衡 | |
伺服器數量 | 2 |
部署方案 | Keepalived+Nginx Nginx版本推薦1.21及以上版本,優先使用最新版本 |
物理記憶體 | 8G |
CPU | 2.5GHz以上 8核16執行緒 |
可用磁碟空間 | 100G以上 其中根目錄可用磁碟不可小於40G |
配置資料庫伺服器(finedb) | |
伺服器數量 | 2 |
資料庫類型 | 高可用資料庫,主備模式 資料庫權限:create、delete、alter、update、select、insert、index |
CPU | 2.5GHz以上 8核16執行緒 |
物理記憶體 | 8g |
可用磁碟空間 | 200G以上 |
網速 | 100Mbps |
磁碟讀寫速度 | 100MB/s |