[toc]

零、遇到的问题

一旦我们重启应用,Sentinel规则将消失

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

一、修改8401模块

1. 修改pom文件

增加依赖

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

2. 修改yaml配置

      datasource:
        ds1:
          nacos:
            server-addr: localhost:8848
            dataId: cloudalibaba-sentinel-service
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow

image

三、添加规则配置

1. nacos添加规则

image.png

image.png

规则解析

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

四、测试

1. 测试接口

测试地址:http://localhost:8401/testA
测试类型:GET
测试结果:快速刷新接口
image.png

2. 测试持久

  1. 停止8401
    image.png

发现已经没有配置
image.png

  1. 重新启动8401

image.png

刷新接口,发现配置已经存在
image.png

Q.E.D.


只有创造,才是真正的享受,只有拚搏,才是充实的生活。