服務(wù)中引入sentinel相關(guān)jar包君丁,上一篇引入的可忽略了
我們這里對(duì)payment-service進(jìn)行限流的配置
下載sentinel控制臺(tái)管理工具
Sentinel 提供一個(gè)輕量級(jí)的開(kāi)源控制臺(tái)上忍,它提供機(jī)器發(fā)現(xiàn)以及健康情況管理、監(jiān)控(單機(jī)和集群),規(guī)則管理和推送的功能
下載地址:https://github.com/alibaba/Sentinel/releases
本文用的是:sentinel-dashboard-1.7.2.jar
啟動(dòng)命令:java -Dserver.port=8849 -Dcsp.sentinel.dashboard.server=localhost:8849 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar
訪問(wèn)瀏覽器:localhost:8849
默認(rèn)賬號(hào)密碼:sentinel
默認(rèn)進(jìn)來(lái)是sentinel自帶的服務(wù),接下來(lái)我們把自己的服務(wù)配置上去
修改bootstrap.yml
配置nacos腹侣,nacos的配置的dataId 要與配置文件中的dataId一致
配置文件解釋圖:
其他的具體詳細(xì)的參數(shù)和降級(jí)參數(shù),網(wǎng)上都有撤奸,可以具體的查詢配置測(cè)試效果
接下來(lái)我們開(kāi)始改造我們的方法吠昭,進(jìn)行限流配置
改造PaymentController.java
添加SentinelResource注解,value就是對(duì)應(yīng)我們nacos中json配置文件中的"resource": "payment-service-current-limiting-resource"
這里一定要注意下胧瓜,別配置錯(cuò)了
接下來(lái)寫(xiě)一個(gè)getBalanceHandleBlock方法
為了體現(xiàn)出效果矢棚,我們配置文件中把sleep參數(shù)改成50(PS:之前為了測(cè)試降級(jí)配置的是5000)
那么,整個(gè)限流的配置和代碼已經(jīng)寫(xiě)完了府喳。接下來(lái)蒲肋,我們啟動(dòng)服務(wù),從account-service服務(wù)訪問(wèn)payment-service服務(wù)試試效果怎么樣
因?yàn)槎勐琎PS限流設(shè)置的是1兜粘,所以訪問(wèn)http://localhost:8081/acc/user?id=2; ?我們刷新快一點(diǎn)弯蚜。
可以看到孔轴,限流生效了
我們?cè)倏纯磗entinel控制臺(tái)情況
控制臺(tái)也能看到我們限流的情況
到此,sentinel限流篇就結(jié)束了
下一篇:spring cloud alibaba 實(shí)戰(zhàn)篇(五)——sentinel服務(wù)熔斷