服務降級和服務熔斷都是從應用層面,或者說服務層面,
一、服務降級指的是,通過頁面、服務等有策略地進行服務降級,儘可能正確地響應大部分用戶的請求。通俗來說,就是如果無法
處理該問題時,給一個默認結果。
1、常見的降級方案:
1)自動降級:
》超時:主要爲配置好超時時間和超時重試次數,同時通過異步的方式探測迴旋情況
》失敗次數:常用於一些不穩定的api ,容易出現故障,達到一定次數時,設置自動降級,也通過異步的方式探測迴旋情況
》故障:比如遠程訪問網絡故障,dns故障,還有遠程服務掛掉,緩存故障等出現時,自動降級。
》限流:和通常所說的限流是一致的。如搶購等,通過限制訪問數量,採取無貨回覆、排隊等待、錯誤回覆等方式處理。
2)人工降級:
秒殺、 雙十一大促等,手動設置可訪問的數量
二、服務熔斷,是指軟件系統因爲某些原因發生錯誤,爲了減少對其他服務的影響,對該服務進行熔斷處理。常見於某時刻負載
過大,也常被稱爲過載保護。
三、服務降級和服務熔斷,
有些共性:
1、目的:都是爲了儘可能返回給用戶正確的相應。
2、最終表現:儘可能讓用戶感覺體驗良好,而非系統卡頓,無響應,
3、粒度:常用於應用層面,或者說服務層面,極少也存在於數據庫層面,
4、自治:熔斷,是完全服務自治,而服務降級可以人工干預,但完全靠人工干預是不現實的。
有些區別:
1、觸發的原因:熔斷是因爲服務自身內部出現故障或者過載,而服務降級,則來源於外界因素。
2、管理目標層次不同:熔斷是從整個系統框架層面考慮,比如每個微服務都需要。而服務降級是出現在業務層面,有些可能不
需要;
3、實現方式不同。
四、服務降級要考慮的因素:
服務是否爲核心服務?
服務是否支持降級,降級策略是什麼?
業務放通場景、策略。
五、典型解決方案:
Hystrix 類,