• sentinel与nacos持久化


    在流量控制那篇文章中,我们在sentinel中配置好A服务对应的限流策略后,如果A服务重启就会导致sentinel中配置好的策略丢失,所以需要持久化操作。

    流量控制可以有三种方法配置:一种是在sentinel控制台进行配置(服务重启则配置的策略丢失),一种是在代码中进行编写控制,还有就是从nacos中读取进行持久化配置。
    限流配置

    1.  [
    2. {
    3. “resource”:"/test", 需要限流的接口
    4. “limitApp”:“default”,
    5. “grade”:1, 阈值类型:1QPS0为线程数
    6. “count”:3, 每秒钟单机阈值,超过就会报错
    7. “strategy”:0, 流控模式 0直接,1关联,2链路
    8. “controlBehavior”:0, 设置流控效果 ,0直接拒接,1 Warm up 预热,2排队等待
    9. “clusterMode”:false
    10. },
    11. ,
    12. {
    13. “resource”:“POST:http://manage-nacos/get/name”,
    14. “limitApp”:“default”,
    15. “grade”:1,
    16. “count”:3,
    17. “strategy”:0,
    18. “controlBehavior”:0,
    19. “clusterMode”:false
    20. }
    21. ]

     对应依赖

    1. <dependency>
    2. <groupId>com.alibaba.cloudgroupId>
    3. <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
    4. dependency>
    5. <dependency>
    6. <groupId>com.alibaba.cloudgroupId>
    7. <artifactId>spring-cloud-starter-alibaba-sentinelartifactId>
    8. <version>${spring-cloud-alibaba.version}version>
    9. dependency>
    10. <dependency>
    11. <groupId>org.springframework.bootgroupId>
    12. <artifactId>spring-boot-starter-actuatorartifactId>
    13. dependency>
    14. <dependency>
    15. <groupId>com.alibaba.cspgroupId>
    16. <artifactId>sentinel-datasource-nacosartifactId>
    17. dependency>

    配置文件中进行配置,从nacos中读取配置信息

    1. spring:
    2. jackson:
    3. default-property-inclusion: non_null # 全局jackson不对null做序列化输出
    4. cloud:
    5. # 将本服务与 sentinel监控进行绑定
    6. sentinel:
    7. transport:
    8. dashboard: 127.0.0.1:8080
    9. datasource:
    10. flow-ds: #sentinel从nacos获取指定的流控规则 这个名字可以自定义,不重复就可以
    11. nacos:
    12. server-addr: 127.0.0.1:8848
    13. dataId: flow-server
    14. groupId: DEFAULT_GROUP
    15. ruleType: flow # flow代表流程控制,degrade代表熔断规则
    16. username: nacos
    17. password: nacos

    熔断配置

    对应参数代表的含义请看 流程控制篇

     

    1. [
    2. {
    3. "resource":"/test", 请求路径
    4. "count":200, 每秒钟请求响应的平均时间,200就是一秒处理五个请求
    5. "grade":0, 降级策略,0RT平均响应时间
    6. "timeWindow":5 熔断时间为5
    7. }
    8. ]

    服务对应的配置文件

    1. spring:
    2. jackson:
    3. default-property-inclusion: non_null # 全局jackson不对null做序列化输出
    4. cloud:
    5. # 将本服务与 sentinel监控进行绑定
    6. sentinel:
    7. transport:
    8. dashboard: 127.0.0.1:8080
    9. datasource:
    10. flow-ds: #sentinel从nacos获取指定的流控规则 这个名字可以自定义,不重复就可以
    11. nacos:
    12. server-addr: 127.0.0.1:8848
    13. dataId: flow-server
    14. groupId: DEFAULT_GROUP
    15. ruleType: flow # flow代表流程控制,degrade代表熔断规则
    16. username: nacos
    17. password: nacos
    18. grade-ds: #sentinel从nacos获取指定的熔断规则 这个名字可以自定义,不重复就可以
    19. nacos:
    20. server-addr: 127.0.0.1:8848
    21. dataId: degrade-server
    22. groupId: DEFAULT_GROUP
    23. ruleType: degrade # flow代表流程控制,degrade代表熔断规则
    24. username: nacos
    25. password: nacos

     

  • 相关阅读:
    Linux内核源码分析 (B.4) 深度剖析 Linux 伙伴系统的设计与实现
    linux下安装Prometheus一篇就够了
    中国传统节日春节网页HTML代码 春节大学生网页设计制作成品下载 学生网页课程设计期末作业下载 DW春节节日网页作业代码下载
    Node的api
    设计师必备,6个PNG素材网站
    华为机试 - 等和子数组最小和
    【算法】通信线路(二分,堆优化版dijkstra)
    Java 性能优化实战案例分析:乐观锁和无锁
    快速入门python基础语法一
    mysql快速生成100万条测试数据脚本(InsCode AI 创作助手)
  • 原文地址:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/126068410