Springboot(五十一)SpringBoot3整合Sentinel-nacos持久化策略

205 阅读3分钟

上文中我记录了在Springboot项目中链接sentinel-dashboard使用限流规则的全过程。

 

但是呢,有一个小小的问题,我重启了一下我本地的sentinel-dashboard服务,然后,我之前创建的所有的流控规则都没了……

 

这……好像有点不合理啊,咱就不能找地儿存储一下?你这一重启就没了,我这可咋整。

 

Sentinel的流控配置是可以存储在nacos配置中心中的。但是这个我好想没有在官方文档中找到对应的信息。

 

嗯,有点意思~

 

下边我记录一下Springboot3整合sentinel将规则持久化到nacos配置中心的全过程。

 

一:添加pom依赖

<!-- sentinel-Nacos 配置持久化  -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
    <version>1.8.8</version>
</dependency>

 

二:yml配置文件

spring:
  cloud:
    sentinel:
      eager: true  #是否开启网关限流,默认true
      transport:
        dashboard: 127.0.0.1:8858
        #clientIp: 113.226.34.58
        #port: 8857  #跟控制台交流的端口,随意指定一个未使用的端口即可
      datasource:
        ds:
          nacos:
            server-addr: 127.0.0.1:8848     # nacos IP  这个可以是远程ip,只要能访问到即可
            username: nacos                     # 用户名
            password: nacos                     # 密码
            namespace: a005a00c-35b4-4891-bedb-e2709d55f672   # 命名空间
            data-id:  cloudalibaba-sentinel-service   # 设置Nacos中配置文件的名字
            group-id: DEFAULT_GROUP   # 所属组
            data-type: json     # 配置文件格式
            rule-type: flow     # 必填的重要字段,指定当前规则类型是"限流“ 也可以是 degrade, param-flow, etc.

重点是datasource开头那段儿,参数具体是啥意思如下图所示:

 1.png

都有标记,具体参照即可。

 

三:限流规则配置

具体配置信息请参考官方文档:

sentinelguard.io/zh-cn/docs/…

官方文档没事多看看,能发现一些很有意思的事情,我就是掉进了不仔细看官方文档的坑。

[{
    "resource": "msg1",
    "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:是否集群。

这部分官方文档里边有,参考即可。

 

最后这里需要注意,你在sentinel-dashboard中创建的规则是不会直接写入到nacos配置中心对应的配置文件中的。


持久化的意思是,sentinel-dashboard每次启动的时候都会去nacos配置中心读取对应的配置。


所以,需要将对应的配置提前写到nacos配置中心的配置文件中。

 

最后注意一点,在代码中定义的规则和存储在nacos配置中心的规则好像不能同时使用,在代码中定义的规则的优先级貌似比存储在nacos配置中心中的规则要高。

 

有好的建议,请在下方输入你的评论。