1. 概述
學習視頻請參見:【平台配置集群】
1.1 版本
報表服務器版本 | JAR 包版本 | 功能變動 |
---|---|---|
10.0.10 | 2020-11-02 | 集群内部通信支持 ipv6&支持狀态服務器和文件服務器校驗主機IP,不可爲空 |
10.0 | 2020-08-03 | 節點與非協調者通信異常會标紅提示 |
2020-07-08 | 文件服務器可選擇傳輸模式 | |
2019-12-05 | - |
1.2 應用場景
單個工程已不能滿足用戶需求,用戶需要較高的并發支撐性能。
單機不可用時,系統停止将會造成業務中斷、數據/模板丢失等問題,用戶需要确保系統 7*24h 穩定運行。
1.3 功能簡介
本文只是介紹開啓集群步驟中的其中一個步驟,主要說明「集群配置」界面中各個設置項,例如:狀态服務器、文件一緻性模式、緩存模式、通信協議,以及對部分集群參數進行配置等。如下圖所示:
開啓集群完整步驟請參見:Linux 系統部署集群、Linux系統自動化部署集群、Windows 系統部署集群
2. 配置集群
狀态服務器和文件服務器配置時,IP 盡量使用内網 IP。配置之前請檢查各服務器系統時間是否一緻,不一緻可能會導緻集群不可用及同步問題,調整方法請參見:Linux 系統如何配置各個節點的時間一緻性?
2.1 開啓狀态服務器
點擊狀态服務器右側的「開啓」按鈕,可在彈窗中選擇「緩存系統」并編輯,如下圖所示:
2.1.1 選擇 Redis 單機
選擇「Redis 單機」時,配置信息的值,如下表所示:
字段 | 值 |
---|---|
主機 | Redis所在服務器的IP地址,推薦用内網地址 |
端口 | Redis的端口,默認爲6379 |
密碼 | Redis服務的密碼,若無則不填寫 |
2.1.2 選擇 Redis 集群
選擇「Redis集群」後,可以手動添加或者删除主機,主機、端口、密碼填寫規則同單機,如下圖所示:
注:如果配置Redis密碼,則要求Redis各個節點使用統一的密碼。
配置完畢後,點擊「測試連接并保存」,若無異常則可保存成功。
2.1.3 選擇 Redis 哨兵
選擇「Redis集群」後,輸入密碼、主節點和哨兵節點,如下圖所示:
注1:詳情參見:Redis 哨兵模式插件、Linux 系統安裝配置 Redis 哨兵 。
注2:集群内部通信支持 IPV6 需要安裝 V1.0.10 版本的 Redis 哨兵模式插件。
2.1.4 選擇騰訊雲 Redis
選擇騰訊雲Redis,輸入主機、端口、密碼,如下圖所示:
注:詳情請參見:騰訊雲 Redis 插件
2.2 設置文件自動同步
文件一緻性包含 assets、reportlets、resources、schedule、dashboards、treasures、../backup 這些文件夾,當我們使用節點間自動同步時,這些文件夾會爲了保持一緻性會自動同步。當我們使用文件服務器時,各個節點将從文件服務器中讀取這些文件内容。
2.2.1 設置節點間自動同步
若不使用文件服務器,則文件一緻設置默認爲「節點間自動同步」,如下圖所示:
注:「節點間自動同步」不适用於多節點,否則會因節點間通信問題影響使用,建議僅兩個節點時使用,大於兩個節點時最好使用「文件服務器」。
2.2.2 設置文件服務器共享
選擇「文件服務器共享」時,可以配置連接文件服務器,目前支持FTP、SFTP、HDFS、共享外部目錄(NAS\NFS等)作爲文件服務器。
注:HDFS 和共享外部目錄均爲插件的形式,需要安裝插件方可配置使用。
FTP 協議
點擊「編輯」,進入設置界面,進行相應的文件服務器配置,點擊「測試連接并保存」,如下圖所示:
字段 | 值 |
---|---|
協議 | FTP |
編碼 | Linux 系統默認 UTF-8,windows 系統默認 GBK |
主機 | 服務器地址 |
端口 | 服務器端口号,FTP默認 21 |
用戶名 | 服務器用戶名 |
密碼 | 服務器密碼 |
傳輸模式 | 默認選擇被動模式 注:若用戶在升級至 2020-07-08 版本之前已經配置了主動模式,則默認選擇主動模式。 主被動傳輸模式介紹可參見:FTP 主動模式和被動模式區别 |
路徑 |
注1:在集群開啓條件下,可以切換主被動模式,不會影響系統正常運行,點擊測試連接并保存就可以保存配置,不需要重啓集群。
注2:按照文檔部署的FTP服務,Linux系統填寫絕對路徑,如用戶名爲ftpuser,那麽路徑爲/home/ftpuser/WEB-INF,Windows系統填寫相對路徑 /WEB-INF即可。
SFTP 協議
點擊「編輯」,進入設置界面,進行相應的文件服務器配置,點擊「測試連接并保存」,如下圖所示:
字段 | 值 |
---|---|
協議 | SFTP |
編碼 | Linux系統默認UTF-8,windows系統默認 GBK |
主機 | 服務器地址 |
端口 | 服務器端口号,SFTP默認22 |
用戶名 | 服務器用戶名 |
密碼 | 服務器密碼 |
路徑 |
注1:要求使用啓動中的 FTP/SFTP 服務器,賬号須具備配置路徑的讀寫權限。
注2:如果是 SFTP 密鑰登錄,無需要用戶名密碼,不填即可,但要點擊密碼後面的圖标上傳密鑰文件。
HDFS 協議
HDFS 作爲文件服務器,可以保證模板等資源文件分布式存儲,實現高可用。詳細查看插件使用文檔 HDFS 資源倉庫
不管使用哪種服務作爲文件服務器,配置完畢後,點擊「測試連接并保存」,若無異常則可保存成功。
2.2.3 其他說明
文件服務器模式下,若集群第一個節點啓動過程中嘗試連接文件服務器失敗,則自動切換至節點間同步模式,确保工程可以正常啓動,并進行異常通知;
使用文件服務器時,想要手動增删改模板都需要在文件服務器下進行操作, 節點下的assets、reportlets、resources、schedule、dashboards、treasures、../backup是沒有作用的;
從文件服務器切換至「節點間同步」時,需要重啓集群工程所有節點方可生效,若不重啓則不生效。
2.3 設置緩存模式
前端可選擇「主動緩存」、「被動緩存」、「關閉緩存」,選擇後立即生效,如下圖所示:
緩存開啓後可提高系統性能,降低模板和資源文件的讀寫耗時。
開啓「主動緩存」時,需要在「管理系統>系統管理>緩存」下,開啓「總是重新讀取模板」,如下圖所示:
設置爲「關閉緩存」,則「總是重新讀取模板」的開關可以不開啓。
在使用文件服務器時,若開啓了緩存,當文件服務器宕機後,系統仍可繼續對外提供服務,此舉可大幅提高系統的可用性。目前默認緩存的資源文件包含模板文件、配置文件、地圖數據等,暫定"reportlets/" ,"resources/", "assets/","dashboards"四個文件夾。
注:節點間同步模式下無法關閉緩存,單機時默認關閉緩存,也不建議開啓。
2.4 設置通信協議
TCP 和 UDP 是常用的網絡傳輸協議,默認選用 TCP 協議。
開啓集群狀态下可以切換集群通信協議,不過重啓工程後方可生效。
注1:如果開啓集群後只顯示本工程的節點,請更換集群連接方式,并重啓各節點工程。
注2:阿裏雲、AWS 等雲服務器不允許 UDP 組播方式,集群連接方式請選擇 TCP。
3. 管理節點
3.1 開啓/關閉集群
3.1.1 開啓集群
狀态服務器和外置數據庫是開啓集群的前置條件,若未配置外置數據庫,則參考文檔進行配置:配置外接數據庫
未配置無法開啓的彈窗提示:
配置完畢正常開啓的彈窗提示:
3.1.2 關閉集群
當我們成功開啓集群并使用時,若想關閉集群,可以直接點擊按鈕就行關閉,不過關閉狀态在重啓後方可生效。
3.2 重啓工程出現第一個節點
當我們開啓集群按鈕,并重啓工程後,可以看到節點管理界面出現一個節點,并且當我們選用的是「節點間自動同步」時,第一個加入集群的節點會作爲文件同步基準節點,若選用的是「文件服務器共享」,則不會出現文件同步基準節點标簽。
需要強調的是:
1)選用的是「節點間自動同步」時,如果想手動變更節點下的資源文件(assets、reportlets、resources、schedule、dashboards、treasures、../backup ),則需要在基準節點下進行變更,增删改動作會自動同步至其他非基準節點。對應非基準節點下的資源文件變動操作,不會生效。
2)基準節點一旦選出後,默認不會變動。若想重置基準節點,可以關閉集群并重啓工程後,再開啓集群,基準節點即可重置,重置邏輯還是選擇集群開啓後第一個加入集群的節點爲基準節點。
3.3 增加節點
注:一個工程即一個節點信息。
3.3.1 方法一:複制 webroot 文件夾到其他服務器下
當第一個節點出現後,就可以将第一個節點的工程包(webroot)拷貝到其他服務器下,然後啓動這些服務器,新的節點就會加入節點管理了,如下圖所示:
3.3.2 方法二:複制 db.properties 文件到其他服務器下
當第一個節點出現後,可以将第一個節點%FR_HOME%\webapps\webroot\WEB-INF\config下的db.properties文件複制粘貼到其他服務器相同文件路徑下,然後啓動這些服務器,新的節點就會加入節點管理中。
3.4 修改節點信息
使用 Tomcat、Weblogic 容器時,集群開啓後可以自動識别容器端口,對於 WAS 集群,暫時不支持自動識别端口,端口默認爲58312,需要修改每個節點的端口爲實際端口。
鼠标劃到節點信息處,右上角出現編輯按鈕,點擊可編輯修改節點名稱、IP 及端口信息,如下圖所示:
3.5 節點異常
節點與非協調者通信異常則會标紅,節點标紅提示如下圖所示:
注1:Jgroups 協調者是一般表現爲每個集群第一個加入的成員的節點, 額外處理一些普通節點無法處理的事件, 但其不對外暴露。
注2:此功能在 2020-08-03 的版本中支持。
3.6 刷新緩存
使用「文件服務器共享」并且開啓緩存時,節點管理界面會出現「刷新緩存」的按鈕。若我們開啓緩存後,有手動在文件服務器下增删改文件的情況,緩存層是無法感知到的,需要手動刷新緩存。「節點間自動同步」模式下可以自動感知到節點下的文件變動情況,因此無須刷新緩存,因爲也不會顯示「刷新緩存」的按鈕。
「主動緩存」模式下:點擊刷新緩存按鈕,則更新緩存;
「被動緩存」模式下:點擊刷新緩存按鈕,則清空緩存;
刷新緩存成功和失敗會有彈窗提醒:
4. 設置異常提醒
4.1 開啓異常提醒
開啓異常檢測提醒功能,點擊「全局設置」按鈕設置提醒方式,比如勾選「短信提醒」、「平台消息」、「郵件提醒」,設置完成後點擊保存即可,默認全不開啓。如下圖所示:
4.2 前置條件
1)短信:需要開啓短信平台,詳細點擊 短信
2)郵件提醒:需要配置郵件服務器,詳細點擊 郵箱
3)平台消息:需要在負載均衡層面配置websocket端口并且開放,相關文檔:Websocket端口被占用/無法使用
5. 注意事項
1)集群各個節點的 JAR 包是不會自動同步的,手動升級時需要分别替換各個節點的 JAR 包。
2)通過平台安裝的插件可以自動分發到各個節點,在插件目錄 plugins 下手動放置的插件包不會自動同步,需要在各個節點都手動操作放置。
3)集群推薦使用私有雲的授權方式,不用關心維護多個節點 license。
4)各個節點存儲自己的日志(方便某節點出錯快速找到其原因)。
5)若設計器遠程設計切換到某個節點之後,當服務器斷開連接,遠程提示離開集群環境的響應彈窗出現速度比較慢,此問題在後續會進行優化。
6. 常見錯誤
6.1 Excel 上傳失敗
6.1.1 問題描述
Excel 上傳失敗,關鍵報錯信息如下:
Write failed!
Failed to write file /var/ftp/finebi/WEB-INF/assets/temp_attach/MapCache1578448427935_685
Permission denied
6.1.2 原因分析
Excel 和圖片文件存儲所在位置的 FTP 用戶名與文件夾用戶名不一緻。
6.1.3 解決方案
将 Excel 和圖片文件存儲所在位置(WEB-INF\assets\temp_attach)的用戶改爲文件夾用戶,或者将文件夾用戶改爲 Excel 和圖片文件存儲所在位置的用戶,即兩個地方的用戶名需要保持一緻。文件夾用戶在決策平台的「管理系統>智能運維>集群配置>文件一緻設置」處修改,如下圖所示:
6.2 目錄不穩定
6.2.1 問題描述
集群環境下登錄報表工程,刷新會導緻某些報表消失,再次刷新又恢複。
6.2.2 原因分析
集群需要開放一些 TCP 通信協議端口,如7850。部分插件加載自己的表,需要 hibernate 重新更新二級緩存,導緻 DecisionDB 啓動兩次,需要用到兩個端口,7850和7851(最後會一直用7851)。但是如果防火牆未開啓7851,會導緻集群通信異常,目錄顯示異常。
6.2.3 解決方案
出現類似情況時,工程啓動後可以先使用 netstat -ntpl 命令查看啓動端口情況(也可以查看日志搜索關鍵字“__DB_CACHE:DecisionDB:”,看後面的 “physical address=”值最大的那個),注意下 785X ,然後使用 curl (其他命令也行,能 ping 端口就好) ,看看 785X 此端口是否能 ping 通,以檢查是否是端口沒開全而産生的。未開通的端口需要全部開通。