目标:Sentinel的基本应用 工具:IDEA--2020.1、Sentinel Maven Nacos 学习目标:学习Sentinel集成Nacos实现动态流控规则 本次学习的工程下载链接放到文本最后面
前面我们实现了两种对定义的资源设置流控规则
1.通过FlowRuleManage.loadRules(List rules)手动加载流控规则 2.在Sentinel Dashboard上正对资源动态创建流控规则
对于第一种设置方式,我们如果介入Sentinel Dashboard,那么同样支持动态修改流控规则,但是,会存在一个问题,基于Sentinel Dashboard 所配置的流控规则只会保存在内存当中,一旦项目重启,这些规则都会被清除,为了解决这个问题,Sentinel提供了动态数据源来支持。
Sentinel集成Nacos实现动态流控规则,配置步骤如下:
<!--添加nacos数据源的依赖-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.7.2</version>
</dependency>
@RestController
public class DynamicController {
@GetMapping("/dynamic")
public String dynamic(){
return "Hello Dynamic Rule";
}
}
spring:
application:
name: springcloud-sentinel-dynamic
cloud:
sentinel:
transport:
dashboard: 127.0.0.1:7777
datasource:
- nacos:
server-addr: 127.0.0.1:8848
data-id: ${spring.application.name}-sentinel-flow
group-id: DEFAULT_GROUP
data-type: json
rule-type: flow
server:
port: 8888
配置说明: 1.datasource:目前支持redis、apollo、zk、file、nacos,选择什么类型的数据源就配置相对应的key即可。 2.data-id:可以设置为${spring.application.name},方便区分不同应用的配置 3.rule-type:表示数据源中规则属于那种类型,如flow、degrade、param-flow、gw-flow等 4.data-type:指配置项的内容格式,SpringCloud Alibaba Sentinel提供了JSON和XML两种格式,如果需要自定义只需要将值配置为custom,并配置converter-class指向converter类
记住nacos中的data-id和你应用中的application.yml中的保持一致
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有