高併發系統設計40講之 如何做到高可用

可用性的度量

MTBF(Mean Time Between Failure)是平均故障間隔的意思,代表兩次故障的間隔時間,也就是系統正常運轉的平均時間。這個時間越長,系統穩定性越高。
MTTR(Mean Time To Repair)表示故障的平均恢復時間,也可以理解爲平均故障時間。這個值越小,故障對於用戶的影響越小。
可用性與 MTBF 和 MTTR 的值息息相關,我們可以用下面的公式表示它們之間的關係:

Availability = MTBF / (MTBF + MTTR)

高可用系統設計的思路

1. 系統設計
  1. 預先考慮如何自動化地發現故障,發生故障之後要如何解決,
    對應的優化方法:failover(故障轉移)、超時控制以及降級和限流。
    一般來說,發生 failover 的節點可能有兩種情況:1、 是在完全對等的節點之間做 failover。2、 是在不對等的節點之間,即系統中存在主節點也存在備節點—使用最廣泛的故障檢測機制是“心跳”
  2. 系統間調用超時的控制 如何確定超時時間-----通過收集系統之間的調用日誌,統計比如說 99% 的響應時間是怎樣的,然後依據這個時間來指定超時時間。 超時時間不是一成不變的,需要在後面的系統維護過程中不斷的修改
  3. 降級-----保證核心服務的穩定而犧牲非核心服務。
  4. 限流-----通過對併發的請求進行限速來保護系統,超過請求次數直接返回錯誤

冗餘,服務冗餘+數據冗餘+設備冗餘—主備,負載均衡,failover
取捨----降級,限流,熔斷,超時控制

2. 系統運維

灰度發佈、故障演練、監控報警

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