手把手带你领略双十一背后的核心组件Sentinel之流控规则
文章目錄
- 1、Sentinel相關(guān)概念的介紹
- 1.1、什么是流控規(guī)則?{1.1、什么是流控規(guī)則?}1.1、什么是流控規(guī)則?
- 1.2、什么是QPS?{1.2、什么是QPS?}1.2、什么是QPS?
- 1.3、什么是線程數(shù)?{1.3、什么是線程數(shù)?}1.3、什么是線程數(shù)?
- 2、流控模式
- 2.1、直接{2.1、直接}2.1、直接
- 2.1.1、選擇閾值類型為QPS{2.1.1、選擇閾值類型為QPS}2.1.1、選擇閾值類型為QPS
- 2.1.2、選擇閾值類型為線程數(shù){2.1.2、選擇閾值類型為線程數(shù)}2.1.2、選擇閾值類型為線程數(shù)
- 2.2、關(guān)聯(lián){2.2、關(guān)聯(lián)}2.2、關(guān)聯(lián)
- 2.3、鏈路{2.3、鏈路}2.3、鏈路
- 3、流控效果
- 3.1、快速失敗{3.1、快速失敗}3.1、快速失敗
- 3.2、WarmUp{3.2、Warm Up}3.2、WarmUp
- 3.3、排隊等待{3.3、排隊等待}3.3、排隊等待
1、Sentinel相關(guān)概念的介紹
1.1、什么是流控規(guī)則?{1.1、什么是流控規(guī)則?}1.1、什么是流控規(guī)則?
簡單了說就是流量控制(所謂的流量就是請求或者叫訪問)
1.2、什么是QPS?{1.2、什么是QPS?}1.2、什么是QPS?
每秒請求數(shù),當(dāng)API的QPS達(dá)到閾值時進行限流
1.3、什么是線程數(shù)?{1.3、什么是線程數(shù)?}1.3、什么是線程數(shù)?
當(dāng)請求API的線程數(shù)達(dá)到閾值時進行限流
2、流控模式
2.1、直接{2.1、直接}2.1、直接
2.1.1、選擇閾值類型為QPS{2.1.1、選擇閾值類型為QPS}2.1.1、選擇閾值類型為QPS
連續(xù)刷新,當(dāng)我間隔1s訪問時,訪問的是正常數(shù)據(jù){連續(xù)刷新,當(dāng)我間隔1s訪問時,訪問的是正常數(shù)據(jù)}連續(xù)刷新,當(dāng)我間隔1s訪問時,訪問的是正常數(shù)據(jù)
連續(xù)刷新,當(dāng)我間隔<1s時,會訪問到系統(tǒng)默認(rèn)數(shù)據(jù){連續(xù)刷新,當(dāng)我間隔<1s時,會訪問到系統(tǒng)默認(rèn)數(shù)據(jù)}連續(xù)刷新,當(dāng)我間隔<1s時,會訪問到系統(tǒng)默認(rèn)數(shù)據(jù)
2.1.2、選擇閾值類型為線程數(shù){2.1.2、選擇閾值類型為線程數(shù)}2.1.2、選擇閾值類型為線程數(shù)
使用JMeter進行模擬并發(fā)測試
零基礎(chǔ)帶你入門JMeter-模擬高并發(fā)接口測試,小白教程!:https://blog.csdn.net/Kevinnsm/article/details/117302197?spm=1001.2014.3001.5501
2.2、關(guān)聯(lián){2.2、關(guān)聯(lián)}2.2、關(guān)聯(lián)
首先先了解一下什么是關(guān)聯(lián),所謂關(guān)聯(lián)就是一個接口依賴另外一個接口,當(dāng)后者的資源達(dá)到閾值時,會發(fā)生限流,而這個限流是限制的前者。比如接口A依賴接口B,接口B的QPS達(dá)到閾值,然后會對A進行限流
為什么要這樣做呢?{為什么要這樣做呢?}為什么要這樣做呢?
這是為了保障那些非常重要的接口,如果某銀行的信息修改接口能和支付接口相比嗎?
使用postman模擬測試{使用postman模擬測試}使用postman模擬測試
2.3、鏈路{2.3、鏈路}2.3、鏈路
當(dāng)從某個接口過來的資源達(dá)到限流條件時,開啟限流
比如我A接口和B接口同時調(diào)用同一個服務(wù),如果A的QPS達(dá)到閾值就會對A進性限流,而B不會受任何影響{比如我A接口和B接口同時調(diào)用同一個服務(wù),如果A的QPS達(dá)到閾值就會對A進性限流,而B不會受任何影響}比如我A接口和B接口同時調(diào)用同一個服務(wù),如果A的QPS達(dá)到閾值就會對A進性限流,而B不會受任何影響
3、流控效果
3.1、快速失敗{3.1、快速失敗}3.1、快速失敗
這個快速失敗前面都使用過,就是當(dāng)QPS或者線程數(shù)達(dá)到閾值時直接返回默認(rèn)數(shù)據(jù)!
3.2、WarmUp{3.2、Warm Up}3.2、WarmUp
Warm Up主要應(yīng)對這一種情況,服務(wù)器中的某個API平常沒人訪問,突然一下來了海量的請求,如果直接放進來,那系統(tǒng)就直接GG了;所以需要預(yù)熱,(比如我最開始處理QPS=3的訪問量,慢慢的經(jīng)過10秒后,我能處理QPS=10的訪問量,就是這個意思,需要一定的時間預(yù)熱)
初始值怎么計算呢?比如上方這張圖,初始的QPS=9/3=3,經(jīng)過五秒后能達(dá)到QPS=9,系統(tǒng)默認(rèn)值是除以3.
3.3、排隊等待{3.3、排隊等待}3.3、排隊等待
所謂的排隊等待就是如果達(dá)到了閾值,那么其他的請求就在一邊排隊等著
上面我設(shè)置了QPS=1的閾值,也就是一秒只能一個請求;超過了就在那等著
然后從控制臺就可以看出一秒處理一個請求
總結(jié)
以上是生活随笔為你收集整理的手把手带你领略双十一背后的核心组件Sentinel之流控规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单几行代码带你快速了解淘宝双十一的强大
- 下一篇: 手把手带你领略双十一背后的核心技术Sen