hystrix熔斷與限流原理?
hystrix是一個幫助解決分布式系統交互時超時處理和容錯的類庫, 它同樣擁有保護系統的能力。
hystrix的設計原則包括:資源隔離、熔斷器、命令模式、資源隔離。
hystrix將同樣的模式運用到了服務調用者上。
hystrix通過將每個依賴服務分配獨立的線程池進行資源隔離, 從而避免服務雪崩。
熔斷器模式定義了熔斷器開關相互轉換的邏輯:服務的健康狀況 = 請求失敗數 / 請求總數。
熔斷器開關由關閉到打開的狀態轉換是通過當前服務健康狀況和設定閾值比較決定的。
當熔斷器開關關閉時, 請求被允許通過熔斷器。
如果當前健康狀況高于設定閾值, 開關繼續保持關閉。
如果當前健康狀況低于設定閾值, 開關則切換為打開狀態。
當熔斷器開關打開時, 請求被禁止通過。
當熔斷器開關處于打開狀態, 經過一段時間后, 熔斷器會自動進入半開狀態, 這時熔斷器只允許一個請求通過。
當該請求調用成功時, 熔斷器恢復到關閉狀態. 若該請求失敗, 熔斷器繼續保持打開狀態, 接下來的請求被禁止通過。
熔斷器的開關能保證服務調用者在調用異常服務時, 快速返回結果, 避免大量的同步等待。
并且熔斷器能在一段時間后繼續偵測請求執行結果, 提供恢復服務調用的可能。