之前的在sentinel 控制台配置的规则,重启后就消失了,sentinel 限流保护-笔记-CSDN博客
本篇还是在之前的demo做验证,使用nacos做持久化。
规则集成Nacos
1 引入依赖
<!--nacos-discovery 注册中心依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- nacos-config 配置中心依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--以nacos作为sentinel数据源的依赖--><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency>
就是备注的:sentinel-datasource-nacos
2 修改配置文件:
可以在nacos对应的改,也在在工程的application.yml改。我贴一下sentinel相关的。
sentinel:transport:port: 8719# 添加sentinel的控制台地址dashboard: tlmall-sentinel-dashboard:8888datasource:nacos:nacos:server-addr: localhost:8848data-id: tlmall-storage-flow-rules.jsonrule-type: flowgroup-id: DEFAULT_GROUPusername: nacospassword: nacosconfig:import:- optional:nacos:${spring.application.name}.yml- optional:nacos:db-common.yml #数据库公共配置- nacos:nacos-discovery.yml- optional:nacos:seata-client.yml
3 nacos配置规则
注意,dataid跟上面配置信息保持一致。
参数的含义:
验证:
重启sentinel ,
也可以再用postman测试下效果,超过阈值的会被拦截。
小结:
nacos中的配置文件对于sentinel来讲是单项数据读入,sentinel能监听到nacos中配置的变化,但是我们在sentinel中修改了配置,nacos是不会监听到并进行修改。目前使用的版本1.8.6 只是配置下就这样了,不改代码做不到双向同步。