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