文章

Sentinel规则说明

Sentinel规则说明

简介

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

流控规则

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

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

降级规则

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

属性必须默认值说明
resource-资源名称,表面这个规则对哪个资源生效
grade0熔断策略,0: 慢调用比例,1:异常比例,2: 异常数
count0慢调用比例下表示慢调用阈值,即超过这个值的调用计为慢调用,单位s,异常比例/异常数模式下为对应的阈值
timeWindow0熔断时长,单位s
minRequestAmount5熔断触发的最小请求数,即请求数小于该值则不会进行熔断
statIntervalMs1000统计时长,单位ms
slowRatioThreshold1.0慢调用比例阈值,仅慢调用比例模式有效(1.8.0引入)
本文由作者按照 CC BY 4.0 进行授权