叢集問題排查

概述

本文匯總了叢集常見的問題及解決方案,幫助與指導使用者快速找到想要的答案。

相關文檔連結:

--- 叢集前端報錯 ---

該Redis節點無法正常使用,請即時檢查該節點狀態

問題描述:

節點管理報錯:該Redis節點無法正常使用,請即時檢查該節點狀態,如下圖所示:


原因分析:

某個節點出現異常或已經宕掉,無法繼續在 Redis 叢集中提供服務。

解決方案:

1)登入 Redis 叢集,輸入cluster nodes檢查 Redis 叢集狀態,如下所示:

./redis-cli -h ip -p 埠 -a 密碼 #用戶端遠端連結某個節點,輸入對應的ip、埠、密碼


當檢查到某個 Redis 節點是當機(fail)狀態,請即時檢查該 Redis 節點進程,若進程還在,則 kill 掉進行重啟,若進程不在,則直接啟動該節點,啟動後再次進行檢查是否恢復。

2)如果想進一步確認 Redis 叢集的可用性,可以連結某個主節點(master)測試是否能夠寫入 key

正常情況如下所示:


異常情況如下所示:


當檢查到 Redis 叢集是無法寫入(down)的狀態時,此種異常較為罕見,建議重啟整個 Redis 叢集。

該節點與XXX節點的JAR包不一致

問題描述:

節點管理報錯:該節點與XXX節點的jar包不一致,請即時更新jar包並重啟該節點,如下圖所示:

原因分析:

節點啟動程式會與第一個加入叢集的節點對比jar包是否一致,若檢查到不一致情況,則前端進行異常展示並給出詳細的異常資訊。

解決方案:

參照異常提示, 檢查各個節點下的 JAR 包並進行調整,調整完畢後重啟節點,再觀察是否還有報錯。

叢集節點XXX與基準節點存在不一致檔案

問題描述:

節點管理報錯:叢集節點XXX與基準節點存在不一致檔案,且無法自動同步,請檢查該節點狀態,如下圖所示:


原因分析:

該節點與檔案同步基準節點進行檔案同步時,出現同步錯誤或者請求逾時,重複嘗試 3 次仍然無法成功,則前端進行異常展示。

解決方案:

檢查節點間通訊、網路狀態是否正常,若有異常則即時進行調整。

異常模組:CLUSTER_MEMBER_MODULE

問題描述:

叢集節點頁面標紅,報錯為:該節點存在異常的模組,暫無法正常提供服務,異常模組:CLUSTER_MEMBER_MODULE,如下圖所示:


排查步驟及解決方案:

可參考:叢集節點標紅異常模組CLUSTER_MEMBER_MODULE

Could not get a resource from the pool

問題描述:

報表介面存取的時候,報錯:Could not get a resource from the pool 如需存取請聯絡管理者,如下圖所示:


原因分析: 

  • Redis 當機

  • 網路異常

  • 工程運作時修改了 Redis密碼

解決方案:

  • 如果是 Redis 當機或網路異常,正常排查和解決即可

  • 如果是 Redis 修改了密碼需重啟 Tomcat 工程,重啟工程後進入平台頁面重新配置 Redis 密碼即可

Redis由單機模式變為叢集模式無法登入

問題描述:

叢集部署時,狀態伺服器為 Redis,Redis 是單機非叢集模式。

突然無法存取,存取報表登入http://ip:port/webroot/decision頁面時,提示 Redis 的錯誤。無法登入,也無法修改狀態伺服器模式。

原因分析:

主要是狀態伺服器 Redis 的模式改變造成無法存取。Redis 模式由單機改為叢集,狀態伺服器的模型由單機改為叢集。

解決方案:

1)登入 MySQL 資料庫,修改資料庫表資訊,SQL 語句如下:

update fine_conf_entity set value='false' where id='StateServerConfig.clusterMode';

update fine_conf_entity set value='false' where id='FineClusterConfig.params.cluster';

2)把各節點下的WEB-INF/config/cluster.config刪除。

3)然後停止服務,重啟各節點即可。

--- 遠端設計 ---

伺服器斷開連結後遠端設計沒有提示斷開

問題描述:

設計器遠端設計切換到某個節點之後,當伺服器斷開連結,遠端設計沒有提示斷開連結。


原因分析:

1)現在彈窗觸發 是基於Socket.IO 監聽 disconnect 事件,但是這個事件斷開後需要幾秒到幾十秒不等才會被回应 (這個時間沒法把控  取決於斷開的形式:

  • 如果是伺服器直接關閉的話,可以很快回应。

  • 如果是 vpn 斷開的話 回应較慢,回应後就會彈窗。

2)遠端設計有自己的心跳機制,30s 進行一次連結校驗。若連續超過3次校驗失敗,則判斷為斷開連結,這個目前也有斷開的事件  90s+後被回应的情況,時間是可控的可配置的。

解決方案:

並不是遠端設計沒有斷開,而是提示離開叢集環境的回应彈窗出現速度比較慢,此問題在後續會進行優化。且後續產品中遠端設計心跳斷開也會提供提示。

啟動 https 遠端設計報錯

問題描述:

切換工作區間到遠端環境,啟動 https,伺服器關掉之後,頁面不會有提示。後台日誌有報錯;此時點選範本,會提示範本不存在。如下圖所示:


原因分析:

現有的遠端設計 websocket 不支援 https,目前僅支援 http,而遠端連結斷開提醒是基於 websocket 實現,所以不支援頁面不會有提示。

解決方法:

使用 http 模式即可。

--- 叢集啟動後各節點只能看到自身節點資訊 ---

叢集間無法通訊

問題描述:

叢集間無法通訊,各個節點只能看到自己的節點資訊。

解決方案:

1)網路不允許 UDP 組播

如果網路不允許組波,而通訊協定選擇的是 UDP,需要改用 TCP。

2)防火牆未開放叢集通訊埠

  • 對於 TCP,節點之間需要互相開放 7800, 7810, 7820, 7830, 7840, 7850, 7860, 7870 這八個埠;

  • 對於 UDP,需要隨機開放 45588~65536 埠中的一個,滿足 UDP 存取。

  • IP 互相 ping 不通(網段和 IP 選擇不當)

容器化部署web叢集的時候使用的是bridge模式預設,導致不是同一台宿主機上面的節點不能 ping 通。

解決方案容器啟動鏡像的時候採用--net=host採用host模式

4)啟動報錯java.net.UnknownHostException: XXXX: XXXX: 未知的名稱或服務

每個節點執行一下,以把 hostname 加到 /etc/hosts 的 127.0.0.1 記錄中

sudo sed -i -e '/127.0.0.1/ s/\(localhost\)/'$(hostname)' \1/' /etc/hosts

5)ip 顯示的不對,需要手動選擇伺服器實際的ip。

節點啟動後互相 telnet 78xx 埠正常

問題描述:

節點啟動後互相 telnet 78xx 埠正常,各個節點只能看到自己的節點資訊。

解決方案:

這種情況一般是兩個節點的叢集 id 不一致導致,檢查兩個節點WEB-INF/config/db.properties檔案的 hibernate.connection.url 值是否一致(字面意思,要一模一樣,不要使用 localhost),如果不一致表示屬於不同叢集,所以會出現節點看不到對方節點,對於使用 oracle 資料庫的,還需要檢查 hibernate.default_schema 是否一致。


節點 id 衝突

問題描述:

節點 id 衝突,各個節點只能看到同一個節點的資訊(2019.06以前版本)。

排查步驟:

1)到每個節點的叢集配置/節點管理查看id是否衝突。

2)排查下面的原因:

  • docker部署

(同鏡像同啟動順序時,docker 指定的 mac 地址是一樣的),或者使用了橋接模式,沒有第三方網路工具的情況下應使用 host 模式,讓宿主機和容器共享 ip 和埠。

  • 亞馬遜伺服器 EC2

(或者類似的虛擬伺服器)上部署(和上面類似,沒有獨立的 mac 地址?)。

  • cluster.properties

手動在各機器 cluster.properties 指定了一樣的節點 id。

--- 其他 ---

檔案解析失敗

問題描述:

在叢集遷移前後環境的 JAR 包版本一致的前提下,叢集遷移時,匯入附件 resource.zip 出錯,報錯如下圖所示:

原因分析:

配置 Nginx 的叢集環境,Nginx 預設限制只能上傳小於 1M 的檔案,當資源遷移的resource.zip過大時會上傳失敗。

注:單機無上傳限制

解決方案:

開啟/nginx/nginx.conf,修改 Nginx 的配置檔案,增大 Nginx 上傳檔案大小限制。如下圖所示:

圖中的 8M 可自行根據需求修改大小,程式碼如下所示:

client_max_body_size 8M;
client_body_buffer_size 128k;

修改完成後,重新載入配置檔案,即可重新成功上傳。


附件列表


主題: 部署集成
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s后關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙

反饋已提交

網絡繁忙