簡而言之:故障轉移(Failover) 是指在不中斷服務的情況下,將系統從發生故障的元件自動切換至正常運作的備用元件的過程。 在區塊鏈基礎架構中,故障轉移可確保當節點、伺服器或資料中心發生故障時,應用程式的 RPC 請求能無縫地重新路由至另一個正常運作的endpoint 。
基本概念
試想你正在高速公路上行駛,主車道突然被堵塞。如果沒有替代路線,你就會被困住。但如果高速公路系統能在你毫無察覺的情況下,自動將你導向平行車道,那就是「故障轉移」的實際運作。
就基礎架構而言,故障轉移是一種能在偵測到系統故障時,立即將流量轉移至備用系統的機制。其目標是實現零(或near 零)中斷。即使在幕後處理這些請求的元件剛剛發生了變更,您的應用程式仍會持續發出請求、接收回應,並維持正常運作。
區塊鏈基礎架構中的故障轉移機制如何運作
區塊鏈基礎設施包含一系列可能發生故障的特定組件。最常見的故障來源包括個別節點、整個區域或資料中心,以及特定的區塊鏈客戶端實作。一套完善的故障轉移系統應能處理這三種情況。
在節點層級上,故障轉移的機制相對簡單。負載平衡器會持續監控池中每個節點的運作狀態,檢查回應時間、錯誤率及區塊高度。若某個節點開始傳回錯誤,或同步進度落後,負載平衡器便會停止將流量傳送至該節點,並將請求分發至其餘運作正常的節點。
在區域層級上,情況就更有趣了。若整個資料中心或雲端可用區域發生中斷,基於 DNS 的故障轉移機制便會啟動。原本應路由至該區域的請求,會自動重新導向至下一個最近的正常運作區域。這就是為什麼地理分布至關重要。若服務供應商僅在單一區域運作節點,當該區域發生中斷時,便無後備方案可依賴。