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