本周更新主要為新增 hyperf/retry 組件,網路通訊天然是不穩定的,因此在分散式系統中,需要有良好的容錯設計,無差別重試是非常危險的。當通訊出現問題時,每個請求都重試一次,相當於系統 IO 負載增加了 100%,容易誘發雪崩事故。重試還要考慮錯誤的原因,如果是無法通過重試解決的問題,那麼重試只是浪費資源而已。除此之外,如果重試的介面不具備冪等性,還可能造成數據不一致等問題。本組件提供了豐富的重試機制和各種策略(如 最大嘗試次數策略
、錯誤分類策略
、回退策略
、睡眠策略
、超時策略
、熔斷策略
、預算策略
及自定義策略),同時您不僅可以通過鏈式調用的形式來實現邏輯重試,還可直接通過 @Retry
註解來實現重試,可以滿足多種場景的重試需求。
同時我們還修復了一些組件的
[admin
]