美文网首页
Nacos配置Sentinel规则

Nacos配置Sentinel规则

作者: 颓废骚年 | 来源:发表于2024-11-11 21:42 被阅读0次

springcloud配置

# sentinel + nacos  ds1为自定义数据源名称,可以随便定义,目的是为了区分出每条规则
spring.cloud.sentinel.datasource.ds1.nacos.server-addr=127.0.0.1:8848
spring.cloud.sentinel.datasource.ds1.nacos.data-id=sentinel
spring.cloud.sentinel.datasource.ds1.nacos.group-id=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds1.nacos.data-type=json
spring.cloud.sentinel.datasource.ds1.nacos.namespace=trainID
# flow:流控规则,degrade:熔断规则,param-flow:热点规则,system:系统规则,authority:授权规则。
spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow

1.流控规则

spring.cloud.sentinel.datasource.ds1.nacos.rule-type=flow
[
      { 
        // 资源名
        "resource": "/test1",
        // 针对来源,若为 default 则不区分调用来源
        "limitApp": "default",
        // 限流阈值类型(1:QPS;0:并发线程数)
        "grade": 1,
        // 阈值
        "count": 1,
        // 是否是集群模式
        "clusterMode": false,
        // 流控效果(0:快速失败;1:Warm Up(预热模式);2:排队等待)
        "controlBehavior": 0,
        // 流控模式(0:直接;1:关联;2:链路)
        "strategy": 0,
        // 预热时间(秒,预热模式需要此参数)
        "warmUpPeriodSec": 10,
        // 超时时间(排队等待模式需要此参数)
        "maxQueueingTimeMs": 500,
        // 关联资源、入口资源(关联、链路模式)
        "refResource": "rrr"
      }
    ]

2.熔断规则

spring.cloud.sentinel.datasource.ds1.nacos.rule-type=degrade
[
    {
      // 资源名
      "resource": "/test2",
      "limitApp": "default",
      // 熔断策略(0:慢调用比例,1:异常比率,2:异常计数)
      "grade": 0,
      // 最大RT、比例阈值、异常数
      "count": 200,
      // 慢调用比例阈值,仅慢调用比例模式有效(1.8.0 引入)
      "slowRatioThreshold": 0.2,
      // 最小请求数
      "minRequestAmount": 5,
      // 当单位统计时长(类中默认1000)
      "statIntervalMs": 1000,
      // 熔断时长
      "timeWindow": 10
    }
  ]

3.热点规则

spring.cloud.sentinel.datasource.ds1.nacos.rule-type=param-flow
[
    { 
      // 资源名
      "resource": "/test3",
      // 限流模式(QPS 模式,不可更改)
      "grade": 1,
      // 参数索引
      "paramIdx": 0,
      // 单机阈值
      "count": 13,
      // 统计窗口时长
      "durationInSec": 6,
      // 是否集群 默认false
      "clusterMode": false,
      "burstCount": 0,
      // 集群模式配置
      "clusterConfig": {
        "fallbackToLocalWhenFail": true,
        "flowId": 2,
        "sampleCount": 10,
        "thresholdType": 0,
        "windowIntervalMs": 1000
      },
      // 流控效果(支持快速失败和匀速排队模式)
      "controlBehavior": 0,
      "limitApp": "default",
      "maxQueueingTimeMs": 0,
      // 高级选项
      "paramFlowItemList": [
        {
          // 参数类型
          "classType": "int",
          // 限流阈值
          "count": 222,
          // 参数值
          "object": "2"
        }
      ]
    }
  ]

4.系统规则

spring.cloud.sentinel.datasource.ds1.nacos.rule-type=system
[
    { 
      // RT
      "avgRt": 1,
      // CPU 使用率
      "highestCpuUsage": -1,
      // LOAD
      "highestSystemLoad": -1,
      // 线程数
      "maxThread": -1,
      // 入口 QPS
      "qps": -1
    }
  ]

5.授权规则

spring.cloud.sentinel.datasource.ds1.nacos.rule-type=authority
[
    {
      // 资源名
      "resource": "/test4",
      // 流控应用
      "limitApp": "app1,app2",
      // 授权类型(0代表白名单;1代表黑名单。)
      "strategy": 0
    }
  ]

相关文章

网友评论

      本文标题:Nacos配置Sentinel规则

      本文链接:https://www.haomeiwen.com/subject/hlwkjjtx.html