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