簡而言之:冗餘是指在基礎架構的每個層級都配置備用元件,以便當某個元件發生故障時,備用元件能自動接管運作。在區塊鏈領域,橫跨節點、區域、雲端服務供應商及客戶端實作的冗餘機制,正是區分生產級系統與脆弱系統的關鍵所在。
「冗餘」的真正含義是什麼
冗餘是指在正常運作期間,運行比嚴格所需數量更多的資源。這份額外的容量並非浪費,而是種保障。
不妨把它想像成一架飛機。商用飛機配備了冗餘引擎、冗餘液壓系統以及冗餘導航儀器。這並非因為預期所有系統會同時故障,而是因為任何單一系統都可能在任何時候發生故障。這些冗餘系統能確保即使某個系統發生故障,飛機仍能繼續飛行。
基礎設施的冗餘也遵循相同的原則。您會在額外的區域、額外的雲端服務供應商上運行額外的節點,並非因為您當下就需要所有這些節點,而是為了確保當其餘節點發生故障時,其中任何子集都能繼續運作。
冗餘的層次
生產環境的區塊鏈基礎架構需要在多個層級具備冗餘機制。每個層級皆針對不同類型的故障進行防護。
節點冗餘是最基礎的機制。與其依賴單一節點來運作特定區塊鏈,不如運行一個由多個節點組成的叢集。若其中一個節點當機、同步進度落後,或開始回傳錯誤,叢集中的其餘節點便會接手處理流量。此機制可防範單一硬體故障、特定節點程序中的軟體錯誤,或是單一機器資源耗盡的情況。
區域冗餘可防止大規模故障發生。如果您的節點全都運行在同一個 AWS 區域,而該區域發生服務中斷(這種情況發生的頻率比多數人想像的還要高),那麼所有服務將會同時癱瘓。將節點分散部署於多個地理區域,可確保維吉尼亞州發生的局部事件,不會影響您在法蘭克福或新加坡的用戶。