前提
sentinel在项目中负责流控熔断配置,但在重启后会丢失之前的配置数据,因为配置默认是存储在内存中,需要手动配置持久化策略
操作步骤
步骤1
下载sentinel源码,链接如下
https://github.com/alibaba/Sentinel
sentinel-dashboard目录:
https://github.com/alibaba/Sentinel/tree/master/sentinel-dashboard
步骤2
可以去除其他模块依赖,只保留 sentinel-dashboard
步骤3,修改对应持久化配置
1. application.properties添加配置
# nacos持久化配置 server.port=8858 nacos.address=20.21.1.158:8848 nacos.namespace=appName-openapi-sentinel
2. test模块下有nacos参考配置:包括现成的flow持久化
3. 同样配置,添加degrade熔断配置,
4. 修改限流,熔断的controller,让规则变更走nacos持久化
5. 以FlowControllerV1为例:引入nacos的持久化服务
@Autowired
@Qualifier("flowRuleNacosProvider")
private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider;
@Autowired
@Qualifier("flowRuleNacosPublisher")
private DynamicRulePublisher<List<FlowRuleEntity>> rulePublisher;
6. 修改规则查询,规则变更入口
7. 同理修改DegradeController文件
使用方式
- 打包后自行部署
mvn clean package
2. 运行sentinel-dashboard.jar
需要指定nacos服务地址,nacos.address: 127.0.0.1:8848
指定nacos命名空间,nacos.namespace: appName-sentinel
java -jar -Xms768m -Xmx768m -XX:PermSize=512M -XX:MaxPermSize=512M -Dfile.encoding=UTF-8 -Dnacos.namespace=appName-sentinel -Dnacos.address=127.0.0.1:8848 sentinel-dashboard.jar
3. nacos上添加对应的命名空间
4. sentinel是惰性,需要调用接口后才会显示接口链路
5. 根据链路配置熔断,限流规则
6. 检测nacos中是否有生成对应的规则配置