sentinel下載:sentinel-dashboard-1.8.1.jar
下載完成後進入sentinel-dashboard-1.8.1.jar的資料夾,在cmd中輸入java -jar sentinel-dashboard-1.8.1.jar
輸入地址:http://localhost:8080/#/login
使用者密碼均為sentinel
在cloud2020專案中啟動cloudalibaba-sentinel-service8401模組。該模組既需要啟動nacos,也需要啟動sentinel。
我們呼叫模組中testA介面,可有:
實時監控
我們可以對該介面實時監控。我們可以用jmeter,模擬高併發請求。比如5秒鐘2000併發,我們看起狀態如何,在這5秒內,我們自己再去訪問testA介面,就會發現響應變慢了!
等會我們對他設定流控規則,還會看到在一段時間內,既有通過的QPS,也有拒絕的QPS,所畫出的曲線將會很有意思。
流控規則
既可以在簇點鏈路,也可在流控規則中設定。我覺得在簇點鏈路中設定更方便。
閾值型別:QPS
瘋狂訪問testA介面會出現:
我們可以看到每秒通過的請求只有3,被拒絕的請求那就得看我手速了(手速快拒絕的多,手速慢拒絕的少)
閾值型別:執行緒數
執行緒數,允許最多三個執行緒去執行,超過則拒絕,新增如下規則:
我們對testA加上800ms的延遲
我模仿20個執行緒去訪問testA介面,結果如下:
一共20,在這兩個800ms中最多建立3個執行緒去執行testA介面,所以5+1一共完成6個請求,其餘的都拒絕了。
流控規則:關聯
當訪問testB的QPS超過30,則訪問testA失敗
我們看20:51:04~20:51:07,testB的QPS都超過30,所以testA的訪問都拒絕了
20:51:08~20:51:10,testB我們停止訪問,testA的訪問都接受了
流控效果:warm up
可以看到,經過預熱,我們通過的QPS才慢慢提升的30
流控效果:排隊等待
QPS為2時,每隔500ms允許通過下一個請求。
那麼QPS為4時,每個250ms允許通過下一個請求
為10呢?那就是100ms嘍~
每秒允許通過10個請求,如果請求等待時間超過1000ms則拒絕該請求
傳送了200個請求,算是全走完了,共用時20s。
超時時間我設定了,但是不知道為啥沒用?
明天搞熔斷?????