限流、熔斷、降級

一、限流、熔斷、降級概念

1.1 限流:

在高并發(fā)系統(tǒng)中一定要用,高并發(fā)的所有請求進(jìn)來,不是讓每個(gè)請求都打到后臺集群的,后臺集群有它的消費(fèi)能力,我們應(yīng)該在它消費(fèi)能力之內(nèi),給它放行請求進(jìn)來,這個(gè)就是限流

比如我們整個(gè)集群的處理能力就是每秒1w,那我們從網(wǎng)關(guān)處給你放過來的請求那就是1w,保證我們服務(wù)不會被超過它能力的流量壓垮,只要超過它能力的流量,我們就直接丟棄,你也不用處理了

1.2 熔斷

就跟電路里面的保險(xiǎn)絲短路的保護(hù)一樣,A服務(wù)調(diào)用B服務(wù)的某個(gè)方法,但是由于B服務(wù)的網(wǎng)絡(luò)不穩(wěn)定或者B服務(wù)方法本來執(zhí)行慢,或者B服務(wù)連接的數(shù)據(jù)庫卡慢,導(dǎo)致方法慢,導(dǎo)致我們整個(gè)調(diào)用鏈慢,或者B服務(wù)直接宕機(jī)了。

我們A服務(wù)要去調(diào)用的話,如果是以前,我們沒有任何保護(hù),直接用feign調(diào)用,feign總是給B服務(wù)發(fā)送請求試,試了一段時(shí)間以后,有個(gè)默認(rèn)超時(shí)時(shí)間,比如3秒,3秒時(shí)間你不返回,我就認(rèn)為你這個(gè)服務(wù)出問題了,feign接口就會報(bào)錯(cuò)。

但是我們現(xiàn)在等不了這么久,因?yàn)檫@樣就會引起我們整個(gè)調(diào)用鏈的累積效應(yīng)。那一個(gè)要等,大家都要等,等著等著全線卡死,資源不能得到及時(shí)釋放,吞吐量下降,大量請求又在這里排隊(duì),這就形成了一個(gè)死循環(huán),處理能力越不行,外面累積的越多,越多的請求又需要越多的資源來進(jìn)行分配處理,那我們機(jī)器就會卡死宕機(jī)

1.3 降級

現(xiàn)在有超多的業(yè)務(wù)都在運(yùn)行,一些核心的業(yè)務(wù):購物車,訂單等等,還有一些非核心的業(yè)務(wù)比如注冊之類的,現(xiàn)在網(wǎng)站正在進(jìn)行秒殺,是一個(gè)流量高峰時(shí)期。
大家資源不夠用了,我們可以手工的將一些非核心業(yè)務(wù),比如注冊,我們將放注冊服務(wù)的服務(wù)器上的注冊服務(wù)直接停掉,因?yàn)檫@個(gè)服務(wù)器不止運(yùn)行了注冊業(yè)務(wù),可能還有其他業(yè)務(wù)。這樣停掉以后,就把大量的資源又騰給這個(gè)服務(wù)器的其他業(yè)務(wù)了,這就叫降級,停止服務(wù)就是降級運(yùn)行

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

相同點(diǎn):

  • 為了保證集群大部分服務(wù)的可用性和可靠性,防止崩潰,犧牲小我
  • 用戶最終都是體驗(yàn)到某個(gè)功能不可用

不同點(diǎn):

  • 熔斷是被調(diào)用方故障,觸發(fā)的系統(tǒng)主動(dòng)規(guī)則
  • 降級是基于全局考慮,停止一些正常服務(wù),釋放資源
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容