服務雪崩
? ? ? ?假設(shè)有如下調(diào)用鏈:

image.png
? ? ? ?假如Service A的流量波動很大,這種情況下,Service B和C不一定能扛得住突發(fā)的請求。
? ? ? ?這時,如果Service C因為扛不住請求,變得不可用,Service B的請求會阻塞,并耗盡Service B的線程資源,Service B就會變得不可用。緊接著會影響Service A,使其也不可用。
? ? ? ?一個服務失敗,導致整條鏈路都失敗的情況,稱為服務雪崩。
服務熔斷
? ? ? ?當下游服務因為某種原因不可用或響應過慢,上游服務為了保證自己整體服務的可用性,不再繼續(xù)調(diào)用目標服務,直接返回,快速釋放資源。
? ? ? ?熔斷機制的設(shè)計,基本上業(yè)內(nèi)使用斷路器模式。目前最流行的斷路器是Hystrix。
服務降級
什么是服務降級?
? ? ? ?考慮兩種場景:
(1)當下游服務因為某種原因響應過慢,下游服務主動停掉一些不太重要的業(yè)務,釋放出服務器資源,增加響應速度。
(2)當下游的服務因為某種原因不可用,上游主動調(diào)用本地一些降級邏輯,避免卡頓,迅速返回給用戶。
熔斷和降級的區(qū)別?
(1)服務降級有很多種方式,比如開關(guān)降級、限流降級、熔斷降級。
(2)服務熔斷數(shù)據(jù)降級方式的一種。