1 服務(wù)雪崩
假如存在調(diào)用鏈條:serviceA -》 serviceB -》 serviceC。
三個服務(wù)的承受能力是不同的,如果serviceA和serviceB請求正常,serviceC因為扛不住請求變得不可用,會導致serviceA和serviceB一直阻塞,資源耗盡后導致serviceB和serviceA變得不可用,導致服務(wù)雪崩。
2 服務(wù)熔斷
下游服務(wù)如果因為不可用或者請求超時,上游服務(wù)為了保證自己的服務(wù)可用性,則不再調(diào)用下游服務(wù)而直接返回,快速釋放資源。等到目標服務(wù)情況好轉(zhuǎn)后回復(fù)調(diào)用。
2.1 斷路器模式
斷路器模式是熔斷機制的一種實現(xiàn),存在open,close,half open三種狀態(tài)
- 最開始斷路器是close狀態(tài),一旦錯誤數(shù)量達到閾值,變轉(zhuǎn)為open狀態(tài)
- reset timeout,達到設(shè)置的時間后,會轉(zhuǎn)移到half open,嘗試放行一部分請求到下游服務(wù)
- 一旦檢測成功,變回到close狀態(tài)
3 服務(wù)降級
3.1 使用場景
- 當下游服務(wù)響應(yīng)過慢或者不可用,會使用降級處理
- 為了將資源預(yù)留出來,把一些不重要的請求直接使用降級處理。例如雙十一會把一些不重要的資源(種樹澆水等)關(guān)閉,把資源留給商品、訂單等
3.2 降級類型
服務(wù)降級有很多種:開關(guān)降級、限流降級、熔斷降級,熔斷器使用的熔斷降級只是降級的一種方式,所以不能將二者混為一談。
- 開關(guān)降級:使用動態(tài)配置,手動打開或者關(guān)閉降級開關(guān)。
- 限流降級:客戶端訪問量達到閾值后,調(diào)用降級處理
- 熔斷降級:熔斷器打開后,調(diào)用降級處理