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。
超時時間我設置了,但是不知道為啥沒用😢
降級規則
慢調用比例
對testD進行測試
設置降級規則
問題:無論最大RT設置成多少,QPS通過總能達到36(我覺得跟最小請求數有關,但是最小請求數我修改了沒用啊!!!改完人家又自己跳回到5了)。比例閾值設置成01之間,保存完再編輯打開,總是會自己跳到值1,我不知道這是不是bug。我是想不通啊。
而且關於postman和apipost這兩個軟件只能做串行阻塞的測試,沒有辦法做並發的測試!
這一點尚硅谷的周陽老師,還有csdn很多點贊的博客都寫錯了,不過評論區有人指出來了!
那就這樣吧!!在愛都曲終人散了,那就這樣吧,在愛都無需掙扎~
熱點規則
測試熱點規則,接受p1和p2參數,對此熱點接口可以QPS如果超過閾值,則去執行deal_testHotKey
方法
每秒請求超過1,則去返回deal_testHotKey
方法的內容
可精確到參數,比如對第一個參數(參數索引從0開始)
通過的總是一半一半,而且應該總和為250QPS,但是總和為500,不知為啥。可能跟jmeter的啟動線程方式有關系吧。