之前的在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:8888
datasource:
nacos:
nacos:
server-addr: localhost:8848
data-id: tlmall-storage-flow-rules.json
rule-type: flow
group-id: DEFAULT_GROUP
username: nacos
password: nacos
config:
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 只是配置下就这样了,不改代码做不到双向同步。