服務熔斷設計

2021-09-24 09:04:44 字數 665 閱讀 9412

一、熔斷的目的

系統微服務化後,分布式部署,系統之間通過rpc框架進行通訊,系統發生故障的概率隨著系統規模的增長而加大;

在呼叫服務時,一些非關鍵路徑發生問題,不能影響整個系統的服務。

二、熔斷系統需求

1、熔斷返回預設值,或者null,最好rpc client就能支援,無需業務改動;

2、熔斷發生時,進行報警,並列印異常日誌;

3、可以實時下發配置,手動和自動都可以實現熔斷;

4、視覺化監控平台,能看到是否發生熔斷。

三、方案

業界方案:netflex oss hystrix,業務侵入較大

優雅方案:rpc client+服務治理平台方式

基於rpc client實現熔斷,統計呼叫決定是否進行熔斷,服務治理平台儲存相關配置。

四、業務流程

1、建立**層,避免對業務侵入,所有熔斷業務在**層完成

2、**層拉取熔斷配置

3、client發起rpc呼叫,通過**層

4、是否觸發本地熔斷,如果熔斷,返回預設值,並報警,熔斷的配置可以設定過期時間,設定兩個key,key1表示所有熔斷,key2表示部分熔斷,key1過期時間比key2短,當key1過期是,開始嘗試部分恢復請求,如果都成功,則刪除key2;如果還是失敗,重新設定key1恢復全部熔斷,並延長key2時間,重複以上步驟。

服務熔斷 服務降級

當某個微服務不可用或者響應時間太長時,會進行服務的降級,進而熔斷該節點微服務的呼叫,快速返回錯誤的響應資訊。當檢測到該節點微服務呼叫響應正常後,恢復呼叫鏈路。當伺服器壓力劇增的情況下,根據實際業務情況及流量,對一些服務和頁面有策略的不處理或換種簡單的方式處理,從而釋放伺服器資源以保證核心交易正常運作...

服務熔斷Spring Cloud Hystrix

熔斷流程 對於熔斷機制的實現,hystrix設計了三種狀態 1.熔斷關閉狀態 closed 服務沒有故障時,熔斷器所處的狀態,對呼叫方的呼叫不做任何限制。2.熔斷開啟狀態 open 在固定時間視窗內 hystrix預設是10秒 介面呼叫出錯比率達到乙個閾值 hystrix預設為50 會進入熔斷開啟狀...

Hystrix 服務熔斷

在分布式的環境或者微服務中,不可避免的會出現一些錯誤,乙個服務的失敗或許會導致整個專案的失敗。而hystrix是乙個庫,它可以通過新增容錯邏輯來保護或者控制你的分布式服務之間的互動。hystrix通過隔離服務之間的訪問點,阻止它們之間的級聯故障以及提供後備選項來實現這一目標,所有這些都可以提高系統的...