常見的四種容錯機制:Fail-Over、Fail-Fast、Fail-Back、Fail-Safe

1、Fail-Over:故障轉移

Fail-Over 意思是“故障轉移,失效切換”,是一種備份操作模式,主要思路是:

主要組件出現異常時,將其功能轉移到具有同樣功能的備份組件。

要點在於有主有備,且主發生故障時,可將備切換爲主。比如 HDFS 的雙 NameNode,當 Active NameNode 出現故障時,可以啓用 Standby NameNode 來繼續提供服務。

2、Fail-Fast:快速失敗

就是“快速失敗”,儘可能早地發現系統中的錯誤,使系統能夠按照事先設定好的錯誤流程執行,對應的方式是“fault-tolerant(錯誤容忍)”。

以 Java 集合(Collection)的快速失敗爲例,當多個線程同時操作同一個集合中的元素時,就可能發生 Fail-Fast 事件。

具體示例:當線程 A 通過迭代器遍歷某集合的時候,其他線程剛好修改了該集合中的元素(比如添加、刪除),這個時候,線程 A 在繼續訪問集合時,就會拋出 ConcurrentModificationException 異常,產生Fail-Fast 事件。
這裏的併發修改異常,就是 發現錯誤時執行設定好的錯誤

3、Fail-Back:失效自動恢復

Fail-Back,就是在故障轉移(Fail-Over)之後,發生故障的服務/機器 能夠自動恢復。

比如:在簇網絡系統(兩臺或多臺服務器互聯的網絡)中,如果要對某臺服務器進行維修,需要把服務(或網絡資源)暫時重定向到備用系統。

維修結束後,再將服務(或網絡資源)恢復爲 由原來維修的主機提供 的過程,稱爲自動恢復。

4、Fail-Safe:失效安全

失效安全,即使在故障的情況下,也不會對系統造成傷害或儘量減少傷害。

比如:紅綠燈 - Traffic light 中,對紅綠燈的“衝突監測”的示例:

如果衝突監控器檢測到錯誤或衝突的信號時,交通信號燈將進入閃爍模式。
該信號可能會向主要道路顯示呈琥珀色閃爍,向人行道路呈紅色閃爍,或在所有方向上呈紅色閃爍,也可以在交通不暢的白天(例如深夜)使用閃光操作 —— 而不是全部顯示爲綠燈。

參考資料

常見容錯機制:failover、failfast、failback、failsafe


版權聲明

感謝閱讀,公衆號 「瘦風的南牆」 ,手機端閱讀更佳,還有其他福利和心得輸出,歡迎掃碼關注🤝
本文系轉載,並在原文的基礎上做了一定的補充和修改。如有侵權,請原作者聯繫博主,定當立即刪除。

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