sentinel集成nacos做持久化配置

发布于:2025-02-20 ⋅ 阅读:(174) ⋅ 点赞:(0)

sentinel提供了非常强大的控制台来提供流控等功能,但是控制台只是临时的配置,想要将流控配置永久的保存,或者在项目启动的时候就加载,不需要手动设置,就需要使用到nacos与sentinel做集成配置。这里都是不变代码,直接复制粘贴,改一下就可以了

#确认nacos和sentinel启动成功
 

 <!-- 集成Sentinel与nacos相关依赖-->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>

在模块的配置文件中添加配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # nacos服务注册发现地址
        namespace: train
      config:
        server-addr: localhost:8848 # nacos配置中心地址
        file-extension: yaml # 配置后缀名
        namespace: train
    sentinel:
      transport:
        dashboard: localhost:18080 # sentinel控制台地址
        port: 8719 #固定端口
      http-method-specify: true # 开启对http 访问前缀的支持比如GET、PU
      datasource:
        # sentinel临时配置的是临时配置,通过将配置项持久化到nacos中
        flow:
          nacos: # nacos配置
            server-addr: localhost:8848 # nacos服务地址
            data-id: sentinel-business.yml # nacos配置文件名
            rule-type: flow # 流控
            group-id: DEFAULT_GROUP # 分组
            data-type: json # 数据类型
            namespace: train # 命名空间

然后在需要做拦截的接口上添加注解


然后在nacos中的配置文件中注册配置文件

nacos: # nacos配置
   server-addr: localhost:8848 # nacos服务地址
   data-id: sentinel-business.yml # nacos配置文件名
   rule-type: flow # 流控
   group-id: DEFAULT_GROUP # 分组
   data-type: json # 数据类型
   namespace: train # 命名空间

        注意信息要和配置文件一样


 

[{
"resource": "hello", // 资源路径,能够通过@SentinelResource来指定,不一定要写全路径
"limitApp": "default", // 限流针对的应用,默认为 "default"
"grade": 1, // 限流阈值类型,0 表示线程数,1 表示 QPS
"count": 10, // 限流阈值,这里是每秒 10 个请求
"strategy": 0, // 流控策略,0 表示直接拒绝,1 表示Warm Up,2 表示匀速排队
"controlBehavior": 0, // 流控效果,0 表示快速失败,1 表示 Warm Up,2 表示匀速排队,3 表示拒绝后排队
"clusterMode": false // 是否集群模式
}]


网站公告

今日签到

点亮在社区的每一天
去签到