1. 概述编辑
1.1 版本
| FineDataLink 版本 |
|---|
| 4.0.1.1及以後 |
1.2 功能簡介
為滿足多類型客戶的使用訴求,FineDataLink支援多種部署方式,支援獨立部署、叢集部署、容器化部署。
本文簡單介紹不同部署內容和部署方式的差別及優劣勢。
2. 叢集與單機编辑
注:僅獨立部署時,支援部署FineDataLink叢集。
什麼是叢集和單機?
單機
就是一個部署好的工程。

叢集
叢集(cluster)就是將多個相同的工程集中起來提供同一種服務,這些單個的工程就是叢集的節點(node)。
基於叢集的橫向擴展性,使用者可透過增加節點數量使併發趨於線性增長,進而獲得較高的併發支撐效能。
同時也可以用多個工程做備份,避免單機不可用導致系統停止造成的損失(業務中斷、資料丟失),確定系統 7*24h 穩定運作。

叢集的優勢
FineDataLink 叢集具有高可用性、高效能、易於管理、可伸縮性和安全保障等優點:
| 優勢 | 說明 |
|---|---|
| 高可用性 | 系統具備容災熱備能力 帆軟叢集透過叢集節點、負載均衡器、狀態伺服器等多個組件協同工作,有多個節點來分擔處理請求的負荷。 使用 FineDataLink 產品時,面對可能導致系統當機的異常情況,系統本身有一定的容災能力,能夠保證資料的同步和處理持續不間斷,應對可能出現的區域性節點當機、停機問題。 |
| 高併發 | 提高任務併發運作能力 帆軟叢集允許平行處理多個定時和管道任務,透過多個節點進而實現任務的分散式處理,以及在使用資料服務時,分散某些請求頻次比較高的API。 使用 FineDataLink 產品時,在任務處理任務比較多的情況下,能透過增加節點數來提升任務的併發運作能力,進而提高整體的效能。 注:定時任務的最小運作儲存格是節點,任務執行時會生成一個任務實體,任務實體內包含多個待運作節點。管道任務的最小運作儲存格是管道任務實體,任務運作時生成一個任務實體,實體內不會再進一步拆分。 高併發邏輯為:將任務實體內的待運作節點均衡地分發到各叢集節點執行,執行順序基於任務內的設計。 |
| 易於管理 | 帆軟叢集提供了完整的管理平台,包括叢集節點的監視、配置、部署和故障自動修復等功能,可以大大降低叢集維護和維運的難度和風險,幫助企業更好地管理和維護系統。
|
| 強擴展性 | 基於良好的架構設計,Web叢集具有良好的橫向擴展性,帆軟叢集可以快速增加叢集節點的數量,使併發趨於線性增長,以應對高峯期和流量波動,做到系統的可伸縮性和高效性。 |
叢集組件作用
在搭建叢集時,需要注意到這不是一件輕鬆簡單的事情。
為了提供無縫絲滑的服務,必須提高服務品質並組建一個優秀的車隊。
我們需要考慮如何構建一個良好的車隊,這是叢集架構需要解決的問題。
| 組件 | 說明 |
|---|---|
| 工程節點 | 叢集節點就是一輛輛出租車。 當某個出租車出現了故障,會自動安排其他出租車來代替它的工作,以確定整個車隊仍然正常工作。 帆軟叢集設計避免了主節點的概念,只將第一個加入叢集的節點作為基準節點。每個節點都平等地提供服務和進行管理操作。 每個節點都是一個可以獨立運作的工程,負責處理使用者的請求,處理任務和管理其他組件的工作。叢集節點間透過一系列的網路協定和服務進行通訊和協作。 |
| 負載均衡 | 負載均衡就像出租車隊的調度中心,用於協調和分配所有的工作和請求。 在接待客戶時,負載均衡作為統一入口,負責對接客戶,不需要讓客戶一個個查詢司機。 在叢集中,負載均衡用於分配任務到各個節點上,使它們能夠更高效地工作。 負載均衡器會在所有節點之間平衡負載,確定每個節點的web端請求都分配到足夠的任務並保持忙碌狀態。 |
| 服務註冊中心 | 保證調度端,即定時任務、管道任務內節點的執行調度的高可用性和高併發。 任務節點調度任務在單個工程節點出現故障時,轉移至其他正常節點保證正常使用;同時將任務實體均衡地分發到各叢集節點執行,確定多個調度任務能同時正常運作。 |
| 外接資料庫 | 配置庫,即外接資料庫FineDB,類似於出租車隊的車管所。 它儲存並維護所有車輛和司機的資訊,為每個司機提供相同的車輛裝飾、報價、出行路線等資訊。讓每一輛車都給顧客提供一致的出行體驗。 在叢集中,配置庫用於儲存和維護所有節點的配置資訊和參數,這些參數是為了使叢集節點協調工作而必須合理設定的。 |
| 狀態伺服器 | 保證 web 端高併發,基於負載均衡配置的轉發邏輯,將使用者的請求均衡地分發到各個節點進行回應,包括:
|
| 檔案伺服器 | 檔案伺服器類似於出租車隊的儲存倉庫。 它儲存所有與車隊相關的檔案,包括車輛維護記錄、保險單、車輛位置資料等。 在叢集中,檔案伺服器用於儲存和共享叢集中所需的檔案和資料資源,以確定每個節點都可以存取並使用它們。 |
帆軟叢集的架構非常靈活,可以根據不同的業務需求和特點進行配置。想要開啟叢集必須至少滿足以下條件:
1)有1個以上工程節點
2)節點配置了外接資料庫
3)節點配置了狀態伺服器
4)如果有2個以上工程節點,則必須配置檔案伺服器
5)節點配置了 Nacos 服務註冊中心
支援範圍
FineDataLink 4.0.27 及以上版本支援資料開發使用叢集;
FineDataLink 4.0.30 及以上版本支援資料管道、資料服務使用叢集;
支援獨立部署的 FineDataLink 工程作為叢集的工程節點;不支援和 FineReport 、FineBI 工程作為節點共同組成叢集。
4. 容器化部署與傳統部署编辑
什麼是容器化部署和傳統部署?
傳統部署:
使用者可以自行準備部署包,搭建最普通的工程架構,即「FineDataLink工程+jdk環境+tomcat中間軟體」
容器化部署:
將應用“容器化”的程式,就是讓應用能夠運作在 Docker 容器或類似技術中,它們能將作業系統環境和應用封裝在一起(完整的系統鏡像)。
由於容器能給應用提供近似於完整系統的環境,這就為在不修改,或者少量修改應用的情況下,對應用的部署進行現代化改造提供了一種思路。
這也是應用的架構持續能保持“雲友好”的基礎。
容器化部署的優勢
相比於傳統部署架構,容器化部署可大幅降低客戶的維護成本和資源成本。
1)維護成本低
每個工程的環境相互隔離,出現異常時影響範圍小。
升級、災備、回滾方便。
2)資源成本低
多叢集管理、多租戶、微服務化,更高資源使用率。
資源彈性伸縮。

容器化部署和傳統部署的差別
容器在整個應用程式生命週期工作流中提供以下優點:隔離性、可攜性、靈活性、可伸縮性和可控性。
最重要的優點是可在開發和營運之間提供隔離。
| 對比項 | 傳統方式部署 | 容器化部署 |
|---|---|---|
| JVM初始配置 | 需要自行手動修改 Tomcat 配置檔案或其他容器對應配置檔案 大部分使用者可能不會完全配置,導致後續業務上出現異常 | 預設已經在鏡像中配置好了常用的所有jvm參數,避免大多jvm參數造成的問題 yaml檔案中可以單獨配置Xmx記憶體上限 |
| 負載均衡 | 需要單獨安裝 Nginx 或其他負載軟體,並進行轉發配置 存在使用者可能缺少很多配置,導致某些業務出現異常 可以根據需要配置keepalived+nginx的高可用架構 | 一鍵部署時,預設自動安裝好nginx且已自動配置好(不支援其他負載) 避免因客戶自行配置錯誤或缺失導致的問題 |
| 硬體要求 | 雖然有推薦,但沒有強制 | 強制要求所有節點的磁碟空間和記憶體 防止在不適合的硬體環境中部署工程,埋下隱患 |
| 組件要求 | 沒限制,所有產品支援的組件都可以配置 | 沒限制,所有產品支援的組件都可以配置 同時支援mysql、redis和minio的部署 |
| 作業系統要求 | 基本無限制 | 支援 amd64 架構的 Linux 系統 centos7.3 以下版本不支援 ubuntu18 以下版本不支援 防止因作業系統版本過低,導致工程運作出現問題 |
| 防火牆要求 | 需要對應伺服器開放使用到的埠即可 | 必須開放所有節點所有組件使用的埠,否則無法部署 確定不因埠問題導致工程運作異常 |
| 單機部署 | 不配置外置庫和其他組件的情況,上傳部署包直接啟動即可 否則需要單獨配置外置庫和組件以及需要的環境、如jdk | 本機root使用者可以一鍵部署 支援在yaml檔案中配置相關節點和組件資訊後部署 支援透過yaml檔案配置使用者原有的組件 |
| 權限要求 | 需要保證檔案權限 | 普通使用者需要sudo權限(已經安裝好docker,且使用者屬於docker使用者組則無需權限) cp tar rm groupadd gpasswd groups dockerd systemctl(docker服務開機自啟需要,不強制) |
| web容器配置修改 | 修改如tomcat目錄下的配置檔案後重啟tomcat | 可以透過維運平台實現前端修改 |
| jvm參數修改 | 直接修改對應檔案即可 | 可以透過維運平台實現前端修改 |
| 環境影響 | 使用受到各種環境影響,如:jdk、glibc、系統字體、系統語言、系統時間等都可能造成某些業務問題 | FineDataLink應用使用docker容器部署,環境統一,只要能支援部署,基本沒有環境影響 |
5. 拓展閱讀编辑
Linux 系統下的相關操作命令等詳情參見:
若部署後需要進行升級或者其他系統維運操作時,可查看 FineDataLink 目錄結構瞭解部署工程的後台目錄檔案
詳情參見:FineDataLink安裝目錄結構

