sentinel入門

KeBoom發表於2021-06-03

sentinel下載:sentinel-dashboard-1.8.1.jar

下載完成後進入sentinel-dashboard-1.8.1.jar的資料夾,在cmd中輸入java -jar sentinel-dashboard-1.8.1.jar

sentinel中文文件

image-20210602211336991

輸入地址:http://localhost:8080/#/login

image-20210602212057143

使用者密碼均為sentinel

cloud2020專案中啟動cloudalibaba-sentinel-service8401模組。該模組既需要啟動nacos,也需要啟動sentinel。

我們呼叫模組中testA介面,可有:

image-20210602212659601

實時監控

我們可以對該介面實時監控。我們可以用jmeter,模擬高併發請求。比如5秒鐘2000併發,我們看起狀態如何,在這5秒內,我們自己再去訪問testA介面,就會發現響應變慢了!

等會我們對他設定流控規則,還會看到在一段時間內,既有通過的QPS,也有拒絕的QPS,所畫出的曲線將會很有意思。

流控規則

既可以在簇點鏈路,也可在流控規則中設定。我覺得在簇點鏈路中設定更方便。

image-20210603200358062

閾值型別:QPS

image-20210603200731764

瘋狂訪問testA介面會出現:

image-20210603200815123

image-20210603200832301

我們可以看到每秒通過的請求只有3,被拒絕的請求那就得看我手速了(手速快拒絕的多,手速慢拒絕的少)

閾值型別:執行緒數

執行緒數,允許最多三個執行緒去執行,超過則拒絕,新增如下規則:

image-20210603202916569

我們對testA加上800ms的延遲

image-20210603203124607

image-20210603202634726

image-20210603202647322

我模仿20個執行緒去訪問testA介面,結果如下:

image-20210603202800025

一共20,在這兩個800ms中最多建立3個執行緒去執行testA介面,所以5+1一共完成6個請求,其餘的都拒絕了。

流控規則:關聯

image-20210603205201358

當訪問testB的QPS超過30,則訪問testA失敗

image-20210603205146662

我們看20:51:04~20:51:07,testB的QPS都超過30,所以testA的訪問都拒絕了

20:51:08~20:51:10,testB我們停止訪問,testA的訪問都接受了

流控效果:warm up

image-20210603210257064

image-20210603210332948

可以看到,經過預熱,我們通過的QPS才慢慢提升的30

流控效果:排隊等待

image-20210603211033888

QPS為2時,每隔500ms允許通過下一個請求。

那麼QPS為4時,每個250ms允許通過下一個請求

為10呢?那就是100ms嘍~

image-20210603211250265

每秒允許通過10個請求,如果請求等待時間超過1000ms則拒絕該請求

image-20210603212745172

image-20210603213235712

傳送了200個請求,算是全走完了,共用時20s。

超時時間我設定了,但是不知道為啥沒用?

明天搞熔斷?????

相關文章