springcloud alibaba -sentinel 配置持久化(datasource -nacos)

发布时间 2023-07-10 23:22:52作者: 你就学个JVAV?

当我们对sentinel进行规则配置之后如果关闭服务在重新启动会发现配置的服务消失了,这样很不方便的,我们需要将它持久化,使用nacos对其进行持久化

1. 导入依赖 让sentinel和nacos产生关系

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

2. 修改yaml文件

server:
  port: 8401

spring:
  application:
    name: cloudalibaba-sentinel-service  # 持久化的配置dataId和这个相同
  sentinel:
     transport:
       dashboard: localhost:8080 #配置Sentinel dashboard地址
       port: 8719
     # 以下为持久化的配置
     datasource:
       ds1:
         nacos:
           server-addr: localhost:8848  #nacos的地址
           dataId: cloudalibaba-sentinel-service #需要持久化的服务id
           groupId: DEFAULT_GROUP
           data-type: json
           rule-type: flow

3. 将sentinel的配置添加到nacos中4. 启动服务进行测试

[
    {
        "resource": "/rateLimit/byUrl",
        "limitApp": "default",
        "grade": 1,
        "count": 1,
        "strategy": 0,
        "controlBehavior": 0,
        "clusterMode": false
    }
]


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

启动后调用任意一个接口,会发现nacos中的配置神奇的出现在了sentinel中了,持久化也就实现了