故障恢復
我們之前講過故障隔離,它的目的是對故障組件進行隔離,以避免影響系統中的其他組件,盡可能保證分布式系統的可用性,
但是之后故障隔離還不夠,我們需要考慮進行故障恢復,
什么是分布式故障?
分布式系統中的故障,可以分為兩類:
- 物理故障,例如硬碟損壞、斷電斷網等,
- 軟體故障,例如系統中存在的bug導致系統崩潰、負載過高等,
我們可以對故障進行分類討論,包括:
- 節點故障,可以分為硬體故障和軟體故障兩種,主要表現是機器無法為用戶提供服務,
- 網路故障,節點間無法通信,從而影響分布式應用正常提供服務,
什么是故障檢測和恢復?
故障檢測,是指通過一定的方式識別或者發現故障,
在分布式系統中,檢測硬體故障通常會比較復雜,因此是通過查看軟體層的表現結果進行故障檢測,
故障檢測,通過一定方式來識別或者發現故障,
在分布式系統中,檢測硬體故障通常比較麻煩因此會通過軟體層的表現結果進行故障檢測,
故障恢復,是指修復分布式系統中出現的故障,使系統恢復正常,
在分布式系統中,常見的故障檢測方法就是心跳機制,我們可以把它分為兩類:
- 固定心跳檢測策略
- 根據歷史心跳資訊預測故障檢測策略
故障恢復策略
對于單點故障問題,往往采取主備策略,即當主節點故障后,從備節點中選出一個作為新的主節點,以繼續提供服務,
對于網路故障問題的解決方案,簡單來說就是C、A、P選擇的問題,
當分布式系統中出現網路故障時,對于高可用性要求嚴格的系統,會要求必須及時回應用戶的場景,就需要保AP放棄C的策略,對于資料一致性有嚴格要求的系統,就需要保CP放棄A的策略,
網路恢復問題也可以看做是資料恢復問題,即網路故障恢復之后節點之間資料進行同步的問題,
作者:李潘 出處:http://wing011203.cnblogs.com/ 本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利,轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/545533.html
標籤:Java