熔斷機制是應對雪崩效應的一種微服務鏈路保護機制,當扇出鏈路的某個微服務不可用或者響應時間太長時,會進行服務的降級,進而熔斷該節點微服務的調用,快速返回”錯誤”的響應信息。
和服務降級有什么區別?
服務熔斷對服務提供了proxy,防止服務不可能時,出現串聯故障(cascading failure),導致雪崩效應。
服務熔斷一般是某個服務(下游服務)故障引起,而服務降級一般是從整體負荷考慮。
共性:
目的 -> 都是從可用性、可靠性出發,提高系統的容錯能力。最終表現->使某一些應用不可達或不可用,來保證整體系統穩定。粒度 -> 一般都是服務級別,但也有細粒度的層面:如做到數據持久層、只許查詢不許增刪改等。自治 -> 對其自治性要求很高。都要求具有較高的自動處理機制。
區別:
觸發原因 -> 服務熔斷通常是下級服務故障引起;服務降級通常為整體系統而考慮。管理目標 -> 熔斷是每個微服務都需要的,是一個框架級的處理;而服務降級一般是關注業務,對業務進行考慮,抓住業務的層級,從而決定在哪一層上進行處理:比如在IO層,業務邏輯層,還是在外圍進行處理。實現方式 -> 代碼實現中的差異。