溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么

發(fā)布時(shí)間:2021-09-03 13:15:00 來(lái)源:億速云 閱讀:105 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

    降級(jí)

    什么是服務(wù)降級(jí)呢?降級(jí)主要有以下幾種情況

    • 超時(shí):當(dāng)下游的服務(wù)因?yàn)槟撤N原因響應(yīng)過(guò)慢,下游服務(wù)主動(dòng)停掉一些不太重要的業(yè)務(wù),釋放出服務(wù)器資源,增加響應(yīng)速度!

    • 不可用:當(dāng)下游的服務(wù)因?yàn)槟撤N原因不可用,上游主動(dòng)調(diào)用本地的一些降級(jí)邏輯,避免卡頓,迅速返回給用戶!

    • 限流:防止上游服務(wù)請(qǐng)求太多導(dǎo)致服務(wù)崩潰,所以限制請(qǐng)求的數(shù)量,來(lái)達(dá)到保護(hù)下游服務(wù)的目的,當(dāng)請(qǐng)求的流量到達(dá)一定閾值時(shí),直接拒絕多余的請(qǐng)求,執(zhí)行降級(jí)邏輯

    看到這,相信你已經(jīng)看到了一個(gè)相同點(diǎn),就是以上三者(超時(shí)、不可用、限流)觸發(fā)時(shí),都會(huì)走同一個(gè)邏輯,那就是降級(jí)邏輯,在hystrix里面叫做fallback;

    JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么

    熔斷

    什么是服務(wù)熔斷

    熔斷很好理解,就是一個(gè)斷開的過(guò)程;

    熔斷就像是家里的保險(xiǎn)絲一樣,當(dāng)電流達(dá)到一定條件時(shí),比如保險(xiǎn)絲能承受的電流是5A,如果你的電流達(dá)到了6A,因?yàn)楸kU(xiǎn)絲承受不了這么高的電流,保險(xiǎn)絲就會(huì)融化,這時(shí)候電路就會(huì)斷開,起到了保護(hù)電器的作用;

    在微服務(wù)里面也是一樣,當(dāng)下游的服務(wù)因?yàn)槟撤N原因突然變得不可用或響應(yīng)過(guò)慢,上游服務(wù)為了保證自己整體服務(wù)的可用性,不再繼續(xù)調(diào)用目標(biāo)服務(wù),直接返回,快速釋放資源。如果目標(biāo)服務(wù)情況好轉(zhuǎn)則恢復(fù)調(diào)用;

    熔斷和降級(jí)的關(guān)系

    說(shuō)了那么多,其實(shí)也能想到了,降級(jí)和熔斷其實(shí)就是服務(wù)安全中的2個(gè)不同的流程,在服務(wù)發(fā)生故障時(shí),肯定是先斷開(熔斷)與服務(wù)的連接,然后在執(zhí)行降級(jí)邏輯;

    JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么

    那既然不管怎樣都會(huì)執(zhí)行降級(jí)邏輯,這時(shí)候就可以理解為 降級(jí)是一種設(shè)計(jì)思想,在java層面就是一個(gè)接口,而熔斷是降級(jí)的不同實(shí)現(xiàn)方式,他們的關(guān)系如下圖:

    JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么

    降級(jí)方式

    那么我們現(xiàn)在知道降級(jí)是一個(gè)接口了,接下來(lái)在看看他們的實(shí)現(xiàn)方式是怎樣的吧

    1、熔斷降級(jí)(不可用)

    熔斷邏輯是這樣的,A服務(wù)調(diào)用B服務(wù),失敗次數(shù)達(dá)到一定閾值后 ,A服務(wù)的斷路器打開,就不在請(qǐng)求B服務(wù),而是直接執(zhí)行本地的fallback方法;這種叫做熔斷降級(jí),看到這里,也許你已經(jīng)明白了,熔斷只是降級(jí)的其中一種實(shí)現(xiàn)方式;

    JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么

    2、超時(shí)降級(jí)

    同樣是A服務(wù)調(diào)用B服務(wù),B服務(wù)響應(yīng)超過(guò)了A服務(wù)設(shè)定的閾值后,就會(huì)執(zhí)行降級(jí)邏輯;

    JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么

    3、限流降級(jí)

    同樣是A服務(wù)調(diào)用B服務(wù),服務(wù)A的連接已超過(guò)自身能承載的最大連接數(shù),比如說(shuō)A能承載的連接數(shù)為5,但是目前的并發(fā)有6個(gè)請(qǐng)求同時(shí)進(jìn)行,前5請(qǐng)求能正常請(qǐng)求,最后一個(gè)會(huì)直接拒絕,執(zhí)行fallback降級(jí)邏輯;

    JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么

    關(guān)于“JAVA中熔斷和降級(jí)真實(shí)關(guān)系是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI