1. 程式人生 > >hystrix(1) 概述

hystrix(1) 概述

  首先我們來講一下hystrix解決什麼問題。在大型分散式系統中經常會存在下面的幾類問題:

    1.大型分散式系統中,服務之間相互依賴,如果依賴的服務發生異常,那麼當前服務也會出現異常,這樣將會導致聯級的服務不可用。

    2.如果依賴服務接收超過執行能力的請求,請求量過大或者執行延時,最終也會導致聯級延時和資源耗盡。

    3.依賴服務間的呼叫缺乏系統監控,很難進行實時調控。

  如何解決上面的三個問題:

    1.針對第一個問題,解決方案一般為提供降級策略,當依賴服務出現異常時,執行降級策略。

    2.1.針對第二個問題,第一個方案是提供延時檢測和熔斷機制,當依賴服務的延時超過設定延時時,進行服務呼叫熔斷,並且給依賴服務一定時間恢復效能。

    2.2針對第二個問題,第二個方案是提供限流策略,對每個依賴服務設定限流策略。

    3.針對第三個問題,對服務間的呼叫釋出執行的metrics資訊。

  hystrix就是這樣的一個框架,來實現和解決上面的幾個問題。Hystrix解決策略是通過封裝和代理服務呼叫,提供以下功能:

  1.提供降級策略,當依賴服務出現異常時,執行降級策略。

  2.提供延時檢測,當依賴服務執行時間超過設定延時時,執行降級策略。

  3.提供限流策略,對每個依賴服務設定限流策略。

  4.提供熔斷機制,讓服務快速降級,並且給依賴服務一定時間恢復效能。

  5.提供實時執行metrics資訊。