java併發和高併發之服務降級與熔斷

服務降級和服務熔斷都是從應用層面,或者說服務層面,

一、服務降級指的是,通過頁面、服務等有策略地進行服務降級,儘可能正確地響應大部分用戶的請求。通俗來說,就是如果無法

處理該問題時,給一個默認結果。

1、常見的降級方案:

  1)自動降級:

        》超時:主要爲配置好超時時間和超時重試次數,同時通過異步的方式探測迴旋情況

        》失敗次數:常用於一些不穩定的api ,容易出現故障,達到一定次數時,設置自動降級,也通過異步的方式探測迴旋情況

        》故障:比如遠程訪問網絡故障,dns故障,還有遠程服務掛掉,緩存故障等出現時,自動降級。

        》限流:和通常所說的限流是一致的。如搶購等,通過限制訪問數量,採取無貨回覆、排隊等待、錯誤回覆等方式處理。

  2)人工降級:

         秒殺、 雙十一大促等,手動設置可訪問的數量

二、服務熔斷,是指軟件系統因爲某些原因發生錯誤,爲了減少對其他服務的影響,對該服務進行熔斷處理。常見於某時刻負載

過大,也常被稱爲過載保護。

三、服務降級和服務熔斷,

有些共性:

   1、目的:都是爲了儘可能返回給用戶正確的相應。

   2、最終表現:儘可能讓用戶感覺體驗良好,而非系統卡頓,無響應,

  3、粒度:常用於應用層面,或者說服務層面,極少也存在於數據庫層面,

  4、自治:熔斷,是完全服務自治,而服務降級可以人工干預,但完全靠人工干預是不現實的。

 有些區別:

  1、觸發的原因:熔斷是因爲服務自身內部出現故障或者過載,而服務降級,則來源於外界因素。

 2、管理目標層次不同:熔斷是從整個系統框架層面考慮,比如每個微服務都需要。而服務降級是出現在業務層面,有些可能不

需要;

3、實現方式不同。

四、服務降級要考慮的因素:

      服務是否爲核心服務?

      服務是否支持降級,降級策略是什麼?

      業務放通場景、策略。

五、典型解決方案:

 Hystrix  類,

  

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章