Spring Cloud --- Sentinel 规则持久化

为什么要持久化

一旦我们重启微服务应用,sentinel 规则将消失,生产环境需要将配置规则进行持久化

怎么实现持久化

将限流配置规则持久化进 Nacos 保存,只要刷新 8401 某个 rest 地址,sentinel 控制台的流控规则就能看到,只要 Nacos 里面的配置不删除,针对 8401 上 sentinel 上的流控规则持续有效

实现步骤

pom 添加依赖

xml 复制代码
<!--SpringCloud ailibaba sentinel-datasource-nacos -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

yml 配置文件添加配置

重点内容:datasource 的配置

yml 复制代码
spring:
  cloud:
    sentinel:
      transport:
        dashboard: localhost:8080 #配置Sentinel dashboard控制台服务地址
        port: 8719 #默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
      web-context-unify: false # controller层的方法对service层调用不认为是同一个根链路
      datasource:
        ds1: #自定义key
          nacos:
            server-addr: localhost:8848
            dataId: ${spring.application.name}-sentinel
            namespace: ${custom.nacos.namespace}
            data-type: json
            rule-type: flow # com.alibaba.cloud.sentinel.datasource.RuleType

添加 Nacos 业务规则配置

json 复制代码
[
  {
    "resource": "/rateLimit/byUrl",

    "limitApp": "default",

    "grade": 1,

    "count": 1,

    "strategy": 0,

    "controlBehavior": 0,

    "clusterMode": false
  }
]

json 说明

  • resource:资源名称;
  • limitApp:来源应用;
  • grade:阈值类型,0 表示线程数,1 表示 QPS;
  • count:单机阈值;
  • strategy:流控模式,0 表示直接,1 表示关联,2 表示链路;
  • controlBehavior:流控效果,0 表示快速失败,1 表示 Warm Up,2 表示排队等待;
  • clusterMode:是否集群。

最后重启微服务,查看 sentinel 流程控制

相关推荐
AskHarries2 小时前
Spring Cloud Consul实现选举机制
java·后端·spring cloud·consul
jakeswang2 小时前
spring循环依赖以及MyBatis-Plus的继承特性导致循环依赖自动解决失效
java·spring·mybatis
扬子鳄0087 小时前
Spring集成测试
java·spring·集成测试
码蜂窝编程官方8 小时前
【含开题报告+文档+PPT+源码】基于SSM的电影数据挖掘与分析可视化系统设计与实现
java·vue.js·人工智能·后端·spring·数据挖掘·maven
小扳9 小时前
Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:电影院后台管理系统(前后端源码 + 数据库 sql 脚本)
java·前端·数据库·spring boot·mysql·spring·课程设计
吃一克鹅蛋9 小时前
Spring 框架环境搭建
java·后端·spring
as_jopo12 小时前
-Dspring.profiles.active=dev与--spring.profiles.active=dev的区别
java·后端·spring
fa_lsyk12 小时前
Spring:AOP面向切面案例讲解AOP核心概念
java·后端·spring
韩明君13 小时前
Spring WebFlux学习笔记(二)
笔记·学习·spring
武昌库里写JAVA14 小时前
SpringBoot+SpringCloud面试题整理附答案
java·开发语言·算法·spring·log4j