當前位置:編程學習大全網 - 源碼下載 - 熔斷降級

熔斷降級

熔斷降級對調用鏈路中不穩定的資源進行熔斷降級是保障高可用的重要措施之壹。

由於調用關系的復雜性,如果調用鏈路中的某個資源不穩定,最終會導致請求發生堆積。Sentinel 熔斷降級會在調用鏈路中某個資源出現不穩定狀態時(例如調用超時或異常比例升高),對這個資源的調用進行限制,讓請求快速失敗,避免影響到其它的資源而導致級聯錯誤。當資源被降級後,在接下來的降級時間窗口之內,對該資源的調用都自動熔斷(默認行為是拋出 DegradeException)

熔斷降級規則包含下面幾個重要的屬性:

我們通常用以下幾種降級策略:

當資源的平均響應時間超過閾值(DegradeRule 中的 count,以 ms 為單位)之後,資源進入準降級狀態。如果接下來 1s 內持續進入 5 個請求(即 QPS >= 5),它們的 RT 都持續超過這個閾值,那麽在接下的時間窗口(DegradeRule 中的 timeWindow,以 s 為單位)之內,對這個方法的調用都會自動地熔斷(拋出 DegradeException)。

當資源的每秒異常總數占通過量的比值超過閾值(DegradeRule 中的 count)之後,資源進入降級狀態,即在接下的時間窗口(DegradeRule 中的 timeWindow,以 s 為單位)之內,對這個方法的調用都會自動地返回。

當資源近 1 分鐘的異常數目超過閾值之後會進行熔斷。

可以通過調用 DegradeRuleManager.loadRules() 方法來用硬編碼的方式定義流量控制規則。

配置

參數

Hystrix常用的線程池隔離會造成線程上下切換的overhead比較大;Hystrix使用的信號量隔離對某個資源調用的並發數進行控制,效果不錯,但是無法對慢調用進行自動降級;

Sentinel通過並發線程數的流量控制提供信號量隔離的功能;此外,Sentinel支持的熔斷降級維度更多,可對多種指標進行流控、熔斷,且提供了實時監控和控制面板,功能更為強大。

  • 上一篇:同壹首歌適合無基礎人家合唱嘛
  • 下一篇:李建成在玄武門之變前除去李世民的機會更多為何沒有先下手為強呢?
  • copyright 2024編程學習大全網