日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SpringCloudAlibabaNacos路由策略之保護(hù)閾值!

來源 | Java中文社群(ID:javacn666)

轉(zhuǎn)載請聯(lián)系授權(quán)(微信ID:GG_Stone)

在 Nacos 的路由策略中有 3 個比較重要的內(nèi)容:權(quán)重、保護(hù)閾值和就近訪問。因為這 3 個內(nèi)容都是彼此獨立的,所以今天我們就單獨拎出“保護(hù)閾值”來詳細(xì)聊聊。

保護(hù)閾值

保護(hù)閾值(ProtectThreshold):為了防止因過多實例故障,導(dǎo)致所有流量全部流入剩余健康實例,繼而造成流量壓力將剩余健康實例被壓垮形成雪崩效應(yīng)。應(yīng)將健康保護(hù)閾值定義為?個 0 到 1 之間的浮點數(shù)。當(dāng)域名健康實例數(shù)占總服務(wù)實例數(shù)的比例小于該值時,無論實例是否健康,都會將這個(健康或不健康的)實例返回給客戶端。這樣做雖然損失了?部分流量,但是保證了集群中剩余健康實例能正常工作。

也就是說,保護(hù)閾值是設(shè)置集群中健康實例占比允許的最小值,它需要設(shè)置一個 0-1 的浮點值,默認(rèn)值為 0,當(dāng)集群中的健康實例占比小于設(shè)置的保護(hù)閾值時,就會觸發(fā)閾值保護(hù)功能。保護(hù)閾值可在服務(wù)詳情中查詢和設(shè)置,如下圖所示:

如何理解保護(hù)閾值?

要理解保護(hù)閾值先要明確一個前提條件:對于 Nacos 的注冊中心功能來說,Nacos 有一個天然的職責(zé),是將服務(wù)消費者(Consumer)的請求轉(zhuǎn)發(fā)給某個健康的服務(wù)提供者(Provider)。但在執(zhí)行的流程中,可能會出現(xiàn)一種極端的情況,比如某個服務(wù)有 100 個實例,其中 99 個實例都宕機(jī)了,只剩下一個健康的實例,這個時候如果把所有的請求都轉(zhuǎn)發(fā)到這一個健康實例上就會造成雪崩效應(yīng),最終導(dǎo)致業(yè)務(wù)系統(tǒng)崩潰。為了防止這種極端情況,于是就有了“保護(hù)閾值”,保護(hù)閾值一旦被觸發(fā),那么 Nacos 將會把請求轉(zhuǎn)發(fā)給所有服務(wù)實例,也就是健康實例+非健康實例,這樣可能會損失了?部分流量,但能保證集群中剩余的健康實例能正常工作。

保護(hù)閾值觸發(fā)條件:(實際健康實例/總服務(wù)實例)≤設(shè)置的保護(hù)閾值

設(shè)置保護(hù)閾值

我們可以通過“編輯服務(wù)”來設(shè)置保護(hù)閾值,如下圖所示:

觸發(fā)保護(hù)閾值

接下來我們創(chuàng)建一個服務(wù)測試一下保護(hù)閾值的功能,在創(chuàng)建的服務(wù)中添加兩個實例,如下圖所示:

默認(rèn)情況下服務(wù)實例都是健康的,接下來我們將保護(hù)閾值設(shè)置為 0.8,也就是健康實例的最低要求是 80%,如果健康實例占比小于此值就會觸發(fā)保護(hù)閾值,如下圖所示:

當(dāng)所有節(jié)點都健康時,觀察服務(wù)列表頁面,可以看出并未觸發(fā)保護(hù)閾值的功能,如下圖所示:

此時我們手動停止一個服務(wù)實例,如下圖所示:

這是健康實例的占比就從 100%,下降到了 50%,小于了設(shè)置的保護(hù)閾值 0.8(80%),接下來返回服務(wù)列表頁面,可以看到保護(hù)閾值功能被觸發(fā)了:

此時,我們再去訪問服務(wù)就會看到,部分請求會轉(zhuǎn)發(fā)到非健康實例,也就是訪問會出錯,如下圖所示:

未觸發(fā)保護(hù)閾值

接下來我們降低保護(hù)閾值,將保護(hù)閾值設(shè)置為 0.3,也就是健康實例占比最低要求是 30%,否則會觸發(fā)閾值保護(hù),如下圖所示:

而此時因為我們健康實例占比是 50%,大于設(shè)置的閾值保護(hù) 0.3,所以就不會觸發(fā)閾值保護(hù),這點可以在服務(wù)列表中觀察到:

當(dāng)未觸發(fā)保護(hù)閾值時,Nacos 會把所有請求都轉(zhuǎn)發(fā)到健康的實例上,所以每次都能正常的訪問服務(wù),執(zhí)行效果如下圖所示:

總結(jié)

保護(hù)閾值是為了防止因過多實例故障,導(dǎo)致所有流量全部流入剩余健康實例,繼而造成流量壓力將剩余健康實例被壓垮形成雪崩效應(yīng)。它的默認(rèn)值是 0,取值范圍應(yīng)該是 0-1 的浮點數(shù)。此值是定義集群中允許健康實例占比的最小值,如果實際健康服務(wù)占比小于或等于此值,就會觸發(fā)保護(hù)閾值,那么 Nacos 就會將全部實例:健康實例 + 非健康實例全部返回給調(diào)用者,而當(dāng)保護(hù)閾值未觸發(fā)時,Nacos 只會把健康實例返回給調(diào)用者。


名稱欄目:SpringCloudAlibabaNacos路由策略之保護(hù)閾值!
URL鏈接:http://www.dlmjj.cn/article/djoshjh.html