服务中引入sentinel相关jar包,上一篇引入的可忽略了
我们这里对payment-service进行限流的配置
下载sentinel控制台管理工具
Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能
下载地址:https://github.com/alibaba/Sentinel/releases
本文用的是:sentinel-dashboard-1.7.2.jar
启动命令:java -Dserver.port=8849 -Dcsp.sentinel.dashboard.server=localhost:8849 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.7.2.jar
访问浏览器:localhost:8849
默认账号密码:sentinel
默认进来是sentinel自带的服务,接下来我们把自己的服务配置上去
修改bootstrap.yml
配置nacos,nacos的配置的dataId 要与配置文件中的dataId一致
配置文件解释图:
其他的具体详细的参数和降级参数,网上都有,可以具体的查询配置测试效果
接下来我们开始改造我们的方法,进行限流配置
改造PaymentController.java
添加SentinelResource注解,value就是对应我们nacos中json配置文件中的"resource": "payment-service-current-limiting-resource"
这里一定要注意下,别配置错了
接下来写一个getBalanceHandleBlock方法
为了体现出效果,我们配置文件中把sleep参数改成50(PS:之前为了测试降级配置的是5000)
那么,整个限流的配置和代码已经写完了。接下来,我们启动服务,从account-service服务访问payment-service服务试试效果怎么样
因为,QPS限流设置的是1,所以访问http://localhost:8081/acc/user?id=2; 我们刷新快一点。
可以看到,限流生效了
我们再看看sentinel控制台情况
控制台也能看到我们限流的情况
到此,sentinel限流篇就结束了
下一篇:spring cloud alibaba 实战篇(五)——sentinel服务熔断