《分佈式技術原理與算法解析》學習筆記Day28

故障恢復

我們之前講過故障隔離,它的目的是對故障組件進行隔離,以避免影響系統中的其他組件,儘可能保證分佈式系統的可用性。

但是之後故障隔離還不夠,我們需要考慮進行故障恢復。

什麼是分佈式故障?

分佈式系統中的故障,可以分爲兩類:

  1. 物理故障,例如硬盤損壞、斷電斷網等。
  2. 軟件故障,例如系統中存在的bug導致系統崩潰、負載過高等。

我們可以對故障進行分類討論,包括:

  • 節點故障,可以分爲硬件故障和軟件故障兩種,主要表現是機器無法爲用戶提供服務。
  • 網絡故障,節點間無法通信,從而影響分佈式應用正常提供服務。

什麼是故障檢測和恢復?

故障檢測,是指通過一定的方式識別或者發現故障。

在分佈式系統中,檢測硬件故障通常會比較複雜,因此是通過查看軟件層的表現結果進行故障檢測。

故障檢測,通過一定方式來識別或者發現故障。

在分佈式系統中,檢測硬件故障通常比較麻煩因此會通過軟件層的表現結果進行故障檢測。

故障恢復,是指修復分佈式系統中出現的故障,使系統恢復正常。

在分佈式系統中,常見的故障檢測方法就是心跳機制,我們可以把它分爲兩類:

  1. 固定心跳檢測策略
  2. 根據歷史心跳信息預測故障檢測策略

故障恢復策略

對於單點故障問題,往往採取主備策略,即當主節點故障後,從備節點中選出一個作爲新的主節點。以繼續提供服務。

對於網絡故障問題的解決方案,簡單來說就是C、A、P選擇的問題。

當分佈式系統中出現網絡故障時,對於高可用性要求嚴格的系統,會要求必須及時響應用戶的場景,就需要保AP放棄C的策略,對於數據一致性有嚴格要求的系統,就需要保CP放棄A的策略。

網絡恢復問題也可以看做是數據恢復問題,即網絡故障恢復之後節點之間數據進行同步的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章