最新历史版本 :FineDataLink部署原理簡介 返回文檔
編輯時間: 內容長度:图片数:目录数: 修改原因:

目錄:

1. 概述编辑

1.1 版本

FineDataLink 版本
4.0.1.1及以後

1.2 功能簡介

為滿足多類型客戶的使用訴求,FineDataLink支援多種部署方式,支援獨立部署、叢集部署、容器化部署。

本文簡單介紹不同部署內容和部署方式的差別及優劣勢。

2. 叢集與單機编辑

注:僅獨立部署時,支援部署FineDataLink叢集。

什麼是叢集和單機?

單機

就是一個部署好的工程。

叢集

叢集(cluster)就是將多個相同的工程集中起來提供同一種服務,這些單個的工程就是叢集的節點(node)。

基於叢集的橫向擴展性,使用者可透過增加節點數量使併發趨於線性增長,進而獲得較高的併發支撐效能。

同時也可以用多個工程做備份,避免單機不可用導致系統停止造成的損失(業務中斷、資料丟失),確定系統 7*24h 穩定運作。

叢集的優勢

FineDataLink 叢集具有高可用性、高效能、易於管理、可伸縮性和安全保障等優點:

優勢
說明
高可用性

系統具備容災熱備能力

帆軟叢集透過叢集節點、負載均衡器、狀態伺服器等多個組件協同工作,有多個節點來分擔處理請求的負荷。

使用 FineDataLink 產品時,面對可能導致系統當機的異常情況,系統本身有一定的容災能力,能夠保證資料的同步和處理持續不間斷,應對可能出現的區域性節點當機、停機問題。

高併發

提高任務併發運作能力

帆軟叢集允許平行處理多個定時和管道任務,透過多個節點進而實現任務的分散式處理,以及在使用資料服務時,分散某些請求頻次比較高的API。

使用 FineDataLink 產品時,在任務處理任務比較多的情況下,能透過增加節點數來提升任務的併發運作能力,進而提高整體的效能。

注:定時任務的最小運作儲存格是節點,任務執行時會生成一個任務實體,任務實體內包含多個待運作節點。管道任務的最小運作儲存格是管道任務實體,任務運作時生成一個任務實體,實體內不會再進一步拆分。

高併發邏輯為:將任務實體內的待運作節點均衡地分發到各叢集節點執行,執行順序基於任務內的設計。

易於管理

帆軟叢集提供了完整的管理平台,包括叢集節點的監視、配置、部署和故障自動修復等功能,可以大大降低叢集維護和維運的難度和風險,幫助企業更好地管理和維護系統。

  • 簡單視覺化配置,80% 的配置都可在平台上完成。

  • 支援熱部署,增加刪除節點無須重啟叢集,只需要copy節點檔案即可。

  • 實時監視各節點的運作狀態,對於節點當機、節點間時間不一致等情況可以即時進行提醒。

  • 各節點間平台配置資訊和資源檔案修改更新能夠實時同步。

  • 對於節點間JAR包不一致情況,啟動時可自動檢查對比並提醒。

強擴展性基於良好的架構設計,Web叢集具有良好的橫向擴展性,帆軟叢集可以快速增加叢集節點的數量,使併發趨於線性增長,以應對高峯期和流量波動,做到系統的可伸縮性和高效性。

叢集組件作用

在搭建叢集時,需要注意到這不是一件輕鬆簡單的事情。

為了提供無縫絲滑的服務,必須提高服務品質並組建一個優秀的車隊。

我們需要考慮如何構建一個良好的車隊,這是叢集架構需要解決的問題。

組件
說明
工程節點

叢集節點就是一輛輛出租車。

當某個出租車出現了故障,會自動安排其他出租車來代替它的工作,以確定整個車隊仍然正常工作。

帆軟叢集設計避免了主節點的概念,只將第一個加入叢集的節點作為基準節點。每個節點都平等地提供服務和進行管理操作。

每個節點都是一個可以獨立運作的工程,負責處理使用者的請求,處理任務和管理其他組件的工作。叢集節點間透過一系列的網路協定和服務進行通訊和協作。

負載均衡

負載均衡就像出租車隊的調度中心,用於協調和分配所有的工作和請求。 

在接待客戶時,負載均衡作為統一入口,負責對接客戶,不需要讓客戶一個個查詢司機。

在叢集中,負載均衡用於分配任務到各個節點上,使它們能夠更高效地工作。 

負載均衡器會在所有節點之間平衡負載,確定每個節點的web端請求都分配到足夠的任務並保持忙碌狀態。

服務註冊中心

保證調度端,即定時任務、管道任務內節點的執行調度的高可用性和高併發。

任務節點調度任務在單個工程節點出現故障時,轉移至其他正常節點保證正常使用;同時將任務實體均衡地分發到各叢集節點執行,確定多個調度任務能同時正常運作。

外接資料庫

配置庫,即外接資料庫FineDB,類似於出租車隊的車管所。 

它儲存並維護所有車輛和司機的資訊,為每個司機提供相同的車輛裝飾、報價、出行路線等資訊。讓每一輛車都給顧客提供一致的出行體驗。

在叢集中,配置庫用於儲存和維護所有節點的配置資訊和參數,這些參數是為了使叢集節點協調工作而必須合理設定的。

狀態伺服器

保證 web 端高併發,基於負載均衡配置的轉發邏輯,將使用者的請求均衡地分發到各個節點進行回應,包括:

  • 使用者使用平台的請求

  • 資料服務的API請求

檔案伺服器檔案伺服器類似於出租車隊的儲存倉庫。

它儲存所有與車隊相關的檔案,包括車輛維護記錄、保險單、車輛位置資料等。

在叢集中,檔案伺服器用於儲存和共享叢集中所需的檔案和資料資源,以確定每個節點都可以存取並使用它們。

帆軟叢集的架構非常靈活,可以根據不同的業務需求和特點進行配置。想要開啟叢集必須至少滿足以下條件:

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 系統下的相關操作命令等詳情參見:

Linux常用命令

Linux系統安裝中文語言包

Linux防火牆使用及配置

若部署後需要進行升級或者其他系統維運操作時,可查看 FineDataLink 目錄結構瞭解部署工程的後台目錄檔案

詳情參見:FineDataLink安裝目錄結構