冗餘(Redundancy)#

冗餘是指複製關鍵資料或服務,以提升系統的可靠性(Reliability)

  • 若某個檔案只存在單一伺服器上,該伺服器一旦故障,檔案就會遺失
  • 為避免資料遺失,可以建立檔案的重複副本(Redundant Copies)

資料遺失幾乎不會是可接受的結果,因此冗餘是系統設計中的基本要求。

同樣的原則也適用於服務:

  • 若系統中有一個關鍵服務,確保多個副本或版本同時運行,可以防止單一節點故障造成的影響
  • 冗餘能消除單點故障(Single Point of Failure),在危機時提供備援

故障轉移(Failover)#

若有兩個服務實例同時在生產環境中運行,當其中一個故障或效能下降時,系統可以故障轉移到另一個實例。故障轉移可以:

  • 自動觸發——系統偵測到故障後自動切換
  • 手動操作——由管理人員介入處理

圖 7.1:故障轉移(Failover)架構圖

複寫(Replication)#

服務冗餘的另一個重要面向是建立 Shared-Nothing 架構

  • 每個節點都能獨立運作,不依賴其他節點
  • 不應有任何中央服務來管理狀態或協調其他節點的活動

圖 7.2:資料複寫(Replication)架構圖

Shared-Nothing 架構的優勢:

  • 擴展性佳——新伺服器可以直接加入,不需要特殊條件或知識
  • 容錯性強——沒有單點故障,系統對故障的抵抗力更高