當GWLB後端伺服器因健全狀態檢查異常或者被移除導致不可用時,新增流量會路由到其他可用伺服器,但現有流量仍然會流向不可用伺服器,可能導致資料包丟失。您可以開啟伺服器組的重新平衡現有流量功能(即Rebalance),當後端伺服器不可用時,GWLB會將現有流量重新路由到其他可用伺服器。
為什麼使用Rebalance功能
是否使用Rebalance功能 | 不使用 | 使用 |
情境示意 | ||
業務現有流量處理方式 | 現有流量繼續流向不可用伺服器,可能導致資料包丟失 | 現有流量立即流向其他可用伺服器,保證了商務持續性 |
Rebalance功能重點解決的問題情境:
網路虛擬設備NVA(如第三方防火牆)的無感升級或維護
使用者應用程式的處理邏輯無需特別設計,來應對因網路虛擬設備NVA切換導致的業務流量中斷問題
Rebalance對應的流量處理邏輯
伺服器健全狀態檢查失敗或伺服器移除後:
新流量將直接路由到其他可用伺服器。
現有流量如何處理,需要參考多個條件進行判斷。
條件1:伺服器停用原因
條件2:是否開啟串連優雅中斷
條件3:是否開啟Rebalance
現有流量處理結果
健全狀態檢查失敗
不影響
✅
轉寄到其他可用伺服器
❌
繼續轉寄到不可用伺服器
✅
轉寄到其他可用伺服器
❌
繼續轉寄到不可用伺服器
伺服器移除
✅
✅
在串連優雅中斷逾時時間內,繼續轉寄到不可用伺服器
經過串連優雅中斷逾時時間後,轉寄到其他可用伺服器
✅
❌
繼續轉寄到不可用伺服器
❌
✅
轉寄到其他可用伺服器
❌
❌
繼續轉寄到不可用伺服器
使用Rebalance功能
控制台
您可在GWLB控制台的伺服器組頁面,在建立伺服器組時,在進階配置處選擇開啟或關閉重新平衡現有流量(推薦)。

或者在已有伺服器組的編輯基本資料頁面,選擇開啟或關閉重新平衡現有流量(推薦)。

API
您可通過在CreateServerGroup - 建立伺服器組或UpdateServerGroupAttribute - 補救伺服器組屬性介面中,傳入ServerFailoverMode參數的值,開啟或關閉Rebalance功能。
ServerFailoverMode參數的枚舉值:
NoRebalance(預設):不重新平衡現有流量
Rebalance:重新平衡現有流量
查詢Rebalance功能開啟狀態,請參考:ListServerGroups - 查詢服務器組列表。
若業務流量為有狀態的協議流量,需要後端伺服器中的網路虛擬設備(例如防火牆)配合使用。
以TCP協議為例,需要防火牆允許在沒有初始 SYN 資料包的情況下建立 TCP 會話。
原理:
TCP 三向交握:TCP 協議通常需要通過三向交握來建立串連。這包括用戶端發送 SYN 資料包、伺服器回應 SYN-ACK,並由用戶端發送 ACK 確認,從而完成串連的建立。
GWLB在進行重新平衡現有流量(Rebalance)時,可能會將現有串連從一個網路虛擬設備移動到另一個網路虛擬設備,這種操作可能會導致 TCP 會話在沒有發起完整的三向交握的情況下被轉移到新的網路虛擬設備上,如果新的網路虛擬設備不支援在沒有初始 SYN 資料包的情況下建立 TCP 會話,則將導致串連中斷。因此,網路虛擬設備需要能夠無縫地接受這種“無SYN”的中間串連,以避免串連被中斷。
配置樣本:以FortiGate防火牆為例,您可在防火牆策略中啟用
tcp-session-without-syn。詳情可參考防火牆廠商官方文檔。