首页 > 其他分享 >Sentinel系列之(十)规则持久化

Sentinel系列之(十)规则持久化

时间:2024-02-28 11:16:27浏览次数:22  
标签:系列 cloudalibaba service8401 Nacos sentinel 规则 Sentinel 持久

规则持久化

1. 是什么

在Sentinel中配置的规则在资源所在的服务重启后就消失了

以cloudalibaba-sentinel-service8401为例进行说明

启动单机版Nacos

启动Sentinel

启动cloudalibaba-sentinel-service8401

为cloudalibaba-sentinel-service8401中的/rateLimit/byUrl这个接口配置Sentinel规则

多次访问http://localhost:8401/rateLimit/byUrl,触发降级

重启cloudalibaba-sentinel-service8401,规则没有了

2. 怎么玩

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

注:并不是一定要持久化到Nacos中,只不过官方推荐这种方式

3. 步骤

修改cloudalibaba-sentinel-service8401

  • 改POM,增加如下依赖

    <!--SpringCloud ailibaba sentinel-datasource-nacos 后续做持久化用到-->
    <dependency>
        <groupId>com.alibaba.csp</groupId>
        <artifactId>sentinel-datasource-nacos</artifactId>
    </dependency>
    
  • 改YML,添加Nacos数据源配置,增加如下配置项

    spring:
      cloud:
        sentinel:
          datasource:
            ds1:
              nacos:
                # Nacos位置
                server-addr: 192.168.59.128:8848
                # 实际上就是${spring.application.name}
                dataId: cloudalibaba-sentinel-service
                groupId: DEFAULT_GROUP
                # Nacos中配置文件的类型
                data-type: json
                rule-type: flow
    

    完整的YML文件如下

    server:
      port: 8401
    
    spring:
      application:
        name: cloudalibaba-sentinel-service
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.59.128:8848
        sentinel:
          transport:
            dashboard: 192.168.59.128:8080
            port: 8719  #默认8719,假如被占用了会自动从8719开始依次+1扫描。直至找到未被占用的端口
          datasource:
            ds1:
              nacos:
                # Nacos位置
                server-addr: 192.168.59.128:8848
                # 实际上就是${spring.application.name}
                dataId: cloudalibaba-sentinel-service
                groupId: DEFAULT_GROUP
                # Nacos中配置文件的类型
                data-type: json
                rule-type: flow
    management:
      endpoints:
        web:
          exposure:
            include: '*'
    
  • Nacos中增加业务规则配置

    • resource:资源名称;
    • limitApp:来源应用;
    • grade:阈值类型,0表示线程数,1表示QPS;
    • count:单机阈值;
    • strategy:流控模式,0表示直接,1表示关联,2表示链路;
    • controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待
    • clusterMode:是否集群。
  • 重启cloudalibaba-sentinel-service8401,目前的规则列表还是空的

  • 多次访问http://localhost:8401/rateLimit/byUrl,规则加载出来了。

至此,规则持久化配置完成。

标签:系列,cloudalibaba,service8401,Nacos,sentinel,规则,Sentinel,持久
From: https://www.cnblogs.com/wzzzj/p/18039352

相关文章

  • Sentinel系列之(九)服务熔断
    服务熔断Sentinel整合Ribbon和OpenFeign@SentinelResource的fallback1.Ribbon系列1.1服务提供者新建cloudalibaba-provider-payment9003和cloudalibaba-provider-payment90049003和9004是一样的,以9003为例建Module【cloudalibaba-provider-payment9003】改POM<?xml......
  • Sentinel系列之(八)@SentinelResource
    @SentinelResource相当于Hystrix中的@HystrixCommand1.按资源名称限流环境说明启动了单机版的Nacos启动了Sentinel基于项目cloudalibaba-sentinel-service8401继续改造增加RateLimitControllerpackagecom.atguigu.springcloud.alibaba.controller;importcom.ali......
  • Sentinel系列之(七)系统规则
    系统规则【系统自适应限流】官网:https://github.com/alibaba/Sentinel/wiki/系统自适应限流1.基本介绍从整体维度对应用入口流量进行控制【其他规则是针对接口的,系统规则是针对所有接口的】违反规则后整个系统不可用阈值类型Load自适应(仅对Linux/Unix-like机器生效):系......
  • Sentinel系列之(六)热点参数限流规则
    热点参数限流规则......
  • Sentinel系列之(五)降级规则
    降级规则官网:https://sentinelguard.io/zh-cn/docs/circuit-breaking.html1.基本介绍​ Sentinel熔断降级会在调用链路中某个资源出现不稳定状态时(例如调用超时或异常比例升高),对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。​ 当资源被降级......
  • Sentinel系列之(四)流控规则
    流控规则流量控制官网:https://github.com/alibaba/Sentinel/wiki/流量控制1.基本介绍资源名:唯一名称,默认请求路径针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)阈值类型/单机阈值:QPS(每秒钟的请求数量):当调用该api的QPS达到阈值的时......
  • Sentinel系列之(三)初始化演示工程
    初始化演示工程1.构建cloudalibaba-sentinel-service8401建Module【cloudalibaba-sentinel-service8401】改POM<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="ht......
  • Sentinel系列之(二)安装Sentinel控制台
    安装Sentinel控制台Sentinel分为两个部分:核心库(ava客户端)不依赖任何框架/库,能够运行于所有Java运行时环境,同时对Dubbo/SpringCloud等框架也有较好的支持。【后台的监控程序】控制台(Dashboard)基于SpringBoot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。【前......
  • Sentinel系列之(一)简介
    简介SpringCloudAlibabaSentinel实现熔断与限流1.官网https://github.com/alibaba/Sentinelhttps://github.com/alibaba/Sentinel/wiki/介绍https://sentinelguard.io/zh-cn/docs/introduction.html2.是什么面向云原生微服务的流量控制、熔断降级组件。阿里版的Hystri......
  • Nacos系列之(一)简介
    简介SpringCloudAlibabaNacos服务注册和配置中心1.为什么叫NacosNamingConfigurationService2.是什么官网:一个更易于构建云原生应用的动态服务发现,配置管理和服务管理中心Nacos=Eureka+Config+Bus疑问:Bus是服务总线,为什么也包含在Nacos里3.能干嘛替代Eureka做服......