Sentinel规则说明

Nov 2, 2022


简介

Sentinel是阿里巴巴开源的一个容错降级组件,其核心的设计思想是定义资源,然后为资源定义规则实现流控和容错降级,本文主要讨论Sentinel的规则配置。

流控规则

流控规则配置的核心类是com.alibaba.csp.sentinel.slots.block.flow.FlowRule,主要的配置也是按照这个类的属性配置。

属性 必须 默认值 说明
resource - 资源名称,表面这个规则对哪个资源生效
limitApp default 流控针对的调用来源,default表示不区分来源
grade 1 限流阈值类型,QPS 或线程数模式,1表示QPS模式,0表示线程模式
count 0 一旦配置了resource,这个流量就必须配置,否则按默认值处理的话,会拦截所有流量
strategy 0 调用关系限流策略:0: 直接、1: 关联、2: 链路
controlBehavior 0 流控效果(0:直接拒绝、1: 慢启动模式、2:排队等待、3: 慢启动+限速模式),不支持按调用关系限流
  • 直接拒绝:放流量通过,但是直接进入降级逻辑
  • 慢启动模式:逐步增加通过流量,给服务端热身时间,达到count的阈值之后,多余的流量进入降级逻辑
  • 排队等待:控制流量进入,只能以固定速率进入正常逻辑,不会进入降级逻辑
  • 慢启动+限速模式:逐步增加通过流量,给服务端热身时间,达到count的阈值之后,其他请求继续等待,不会进入降级逻n辑

降级规则

降级规则配置的核心类是com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule

属性 必须 默认值 说明
resource - 资源名称,表面这个规则对哪个资源生效
grade 0 熔断策略,0: 慢调用比例,1:异常比例,2: 异常数
count 0 慢调用比例下表示慢调用阈值,即超过这个值的调用计为慢调用,单位s,异常比例/异常数模式下为对应的阈值
timeWindow 0 熔断时长,单位s
minRequestAmount 5 熔断触发的最小请求数,即请求数小于该值则不会进行熔断
statIntervalMs 1000 统计时长,单位ms
slowRatioThreshold 1.0 慢调用比例阈值,仅慢调用比例模式有效(1.8.0引入)