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 中,對紅綠燈的“衝突監測”的示例:
如果衝突監控器檢測到錯誤或衝突的信號時,交通信號燈將進入閃爍模式。
該信號可能會向主要道路顯示呈琥珀色閃爍,向人行道路呈紅色閃爍,或在所有方向上呈紅色閃爍,也可以在交通不暢的白天(例如深夜)使用閃光操作 —— 而不是全部顯示爲綠燈。
參考資料
版權聲明
感謝閱讀,公衆號 「瘦風的南牆」 ,手機端閱讀更佳,還有其他福利和心得輸出,歡迎掃碼關注🤝
本文系轉載,並在原文的基礎上做了一定的補充和修改。如有侵權,請原作者聯繫博主,定當立即刪除。