SpringCloud Alibaba Sentinel 规则持久化

一、前言

        接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第十七篇,即使用 Sentinel 实现规则持久化。

二、概述

        从前面我们做的实验可知,一旦我们重启应用,sentinel 规则将消失,生产环境需要将配置规则进行持久化,以保证正常的运行。

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

三、实现步骤

3.1 添加 maven 依赖

        首先确保 cloudalibaba-consumer-nacos-order8401 模块的 pom.xml 中引入了 相关的依赖,如下:

<!--SpringCloud ailibaba sentinel-datasource-nacos 后续做持久化用到-->
<dependency>
	<groupId>com.alibaba.csp</groupId>
	<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

3.2 修改配置文件

         接下来需要在 application.yml 中添加 Nacos 数据源的支持,如下:

server:
  port: 8401

spring:
  application:
    name: cloudalibaba-sentinel-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # Nacos服务注册中心地址
    sentinel:
      transport:
        dashboard: localhost:8080 # 配置Sentinel dashboard地址
        # 默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用的端口
        port: 8719
      # 添加 Nacos 数据源的配置
      datasource:
        ds1:
          nacos:
            server-addr: localhost:8848
            dataId: cloudalibaba-sentinel-service
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow
management:
  endpoints:
    web:
      exposure:
        include: '*'

3.3 配置 nacos

        打开 nacos 的管理界面,添加 nacos 的业务规则配置,如下图:

配置详解如下: 

        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:是否集群 

3.4 测试

        启动 8401 模块后, 调用 http://localhost:8401/rateLimit/byUrl,刷新 sentinel 发现流控规则有了,如下图:

        快速访问测试接口,可以看到,限流是没有任何问题的,如下图:

        此时停止 8401 模块,再看 sentinel 管理界面,如下图,可以看到,流控规则没有了

        重新启动 8401 再看 sentinel,等待一会,并且多次调用 http://localhost:8401/rateLimit/byUrl,如下图,重新配置出现了,持久化验证通过。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Cloud Nacos和Sentinel都支持持久化配置文件,可以通过以下步骤进行配置: 1.在Nacos中创建配置文件。可以使用Nacos的Web界面或Nacos的API创建配置文件,例如在Nacos的Web界面中创建名为“sentinel”的配置文件。 2.在Sentinel中添加配置文件。可以通过在Sentinel中添加以下配置来指定Nacos作为配置中心: ``` -Dcsp.sentinel.datasource.type=nacos -Dcsp.sentinel.datasource.nacos.serverAddr=${nacos.serverAddr} -Dcsp.sentinel.datasource.nacos.namespace=${nacos.namespace} -Dcsp.sentinel.datasource.nacos.dataId=${nacos.dataId} -Dcsp.sentinel.datasource.nacos.groupId=${nacos.groupId} ``` 其中,${nacos.serverAddr}、${nacos.namespace}、${nacos.dataId}和${nacos.groupId}是Nacos配置文件的相关信息。 3.在Sentinel中启用持久化配置。可以通过在Sentinel Dashboard中配置以下参数来启用持久化配置: ``` -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel -Dcsp.sentinel.api.port=8721 -Dcsp.sentinel.dashboard.auth.username=sentinel -Dcsp.sentinel.dashboard.auth.password=sentinel -Dcsp.sentinel.log.use.pid=true -Dcsp.sentinel.datasource.config.file=${user.home}/sentinel/config/properties -Dcsp.sentinel.datasource.config.file.name=sentinel.properties -Dcsp.sentinel.datasource.config.encrypt.key=q9Ec7J6K8sR1T2L4 ``` 其中,${user.home}/sentinel/config/properties是持久化配置文件的路径。 4.在Nacos中修改配置文件。可以通过Nacos的Web界面或Nacos的API修改配置文件。例如,在Nacos的Web界面中修改名为“sentinel”的配置文件。 5.在Sentinel中更新配置。可以通过在Sentinel Dashboard中的“配置中心”页面中点击“刷新”按钮来更新配置配置更新后,Sentinel会自动加载新配置。 通过以上步骤,就可以实现Spring Cloud Nacos和Sentinel持久化配置文件功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐的小三菊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值