SpringCloud Alibaba Sentinel规则持久化实践总结

默认情况下,一旦我们重启应用,sentinel规则将消失,生产环境需要将配置规则进行持久化。这里我们实践将Sentinel持久化到Nacos中。只要Nacos里面的配置不删除,针对sentinel上的流控规则持续有效。

① pom依赖

我们引入sentinel-datasource-nacos:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- 持久化用到 -->
<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>

② yml配置

server:
  port: 8401

spring:
  application:
    name: cloud-alibaba-sentinel-service
  cloud:
    nacos:
      discovery:
        # 服务注册中心地址
        server-addr: localhost:8848
    sentinel:
      transport:
        # 配置sentinel dashboard地址
        dashboard: localhost:8080
        # 默认 8719端口,假如被占用从8719开始+1扫描直到直到未被占用的端口
        port: 8719
      datasource: # 规则持久化
        ds1:
          nacos:
            server-addr: localhost:8848 #nacos地址
            dataId: cloud-alibaba-sentinel-service  #微服务名称
            groupId: DEFAULT_GROUP  #默认分组
            data-type: json #数据格式
            rule-type: flow #流控规则
management:
  endpoints:
    web:
      exposure:
        include: '*'

可以参考ds1增加其他比如熔断规则的数据源配置。
在这里插入图片描述

③ Nacos添加配置

在这里插入图片描述

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

其实就是Sentinel控制台如下配置:

在这里插入图片描述

④ 测试

从Sentinel控制台删除规则,停掉服务实例8401,此时再刷新Sentinel控制台,规则是空的。

在将规则配置进Nacos后,启动8401,刷新Sentinel控制台,规则仍旧是空的。

浏览器访问 http://localhost:8401/rateLimit/byUrl ,刷新Sentinel控制台,规则出现:

在这里插入图片描述

(这里要稍等一会)多次请求访问 http://localhost:8401/rateLimit/byUrl ,出现流控管控情况:

在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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、付费专栏及课程。

余额充值