Sentinel流控规则绑定nacos持久化

    上文我们已经认识了Sentinel,并且使用了Sentinel来进行流控。但是可能很多人都没有去关注在我们的项目服务关闭之后,我们的流控规则是否存在的问题。如果关注过,我们不难发现,服务关闭之后,我们可以看到Sentinel控制台中,流控规则已经不存在了。本文就是主要来解决这个问题


服务关闭,流控规则就不见了

我们可以通过关闭服务来观看到这个现状,服务关闭之后,Sentinel的控制台的监控里面就看不到了我们之前对服务配置的流控规则了。这里我们不妨想想,为什么服务关闭之后,流控规则就不见了?我们存在内存中的东西,是不是服务关闭,内存就丢失了。从这里我们不妨推测的更多一点,既然服务关闭,规则就丢了,我们是不是可以直接将规则持久化?确实,Sentinel配置的规则,都是存放在内存里面的,这样的流控规则肯定不能满足生成环境的要求,所以我们要将这些规则持久化。
持久化流控规则的几种方式


    文件配置(不建议使用)
    Nacos配置
    ZooKeeper配置
    Apollo配置

准备工作

启动Nacos和Sentinel Dashboard。还不知道是啥的,可以先按照下面链接学习一下


    ​​Spring Cloud Alibaba-限流组件Sentinel认识并使用Sentinel实现接口限流​​
    ​​Spring Cloud Alibaba-Nacos的介绍和安装​​

在原有的限流项目中添加Sentinel整合Nacos的依赖

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

 

添加对应的本地文件配置

在application.yml文件中添加对应的读取流控规则的配置

spring:
  cloud:
    sentinel:
      datasource:
        # 名字随意
        ds:
          nacos:
            # nacos的访问地址,,根据上面准备工作中启动的实例配置
            server-add: 192.168.22.71:8848
            # nacos中存储规则的groupId
            groupId: DEFAULT_GROUP
            # nacos中存储规则的dataId
            dataId: ${spring.application.name}-rules
            # 用来定义存储的规则类型
            rule-type: flow
            data-type: json

   

在nacos添加对应的流控配置

 

Spring Cloud Alibaba-Sentinel流控规则关闭服务就消失解决方案(使用nacos存储规则)_微服务

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

  

流控配置注解


    resource: 需要限流的接口路径
    limitApp: 流控针对的调用来源,若为 default 则不区分调用来源
    grade: 限流阈值类型(QPS 或并发线程数);0代表根据并发数量来限流,1代表根据QPS来进行流量控制
    count: 限流阈值
    strategy: 调用关系限流策略
    controlBehavior: 流量控制效果(直接拒绝、Warm Up、匀速排队)
    clusterMode: 是否为集群模式


    到这里为止我们的准备工作都已经做好了,接下来我们可以测试了。测试之前,由于我们添加了很多配置,我们将nacos、sentinel和项目重启一遍,然后准备访问接口


测试

直接访问我们需要限流的接口:​​localhost:8080/test/test​​

Spring Cloud Alibaba-Sentinel流控规则关闭服务就消失解决方案(使用nacos存储规则)_spring boot_02

重启项目,然后在访问,再看看这个规则是否存在!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值