quick start
sentinel 使用介绍
sentinel 流控规则
概述
控制资源流量
配置说明
Field | 说明 | 默认值 |
---|---|---|
resource | 资源名,资源名是限流规则的作用对象 | |
count | 限流阀值 | |
grade | 限流阀值类型:Qps或者线程数模式 | QPS |
limitApp | 流控针对的调用来源 | default,代表不区分调用来源 |
strategy | 流控模式:直接,关联,链路 | 直接 |
controlBehavior | 流控效果:快速失败,warm up ,排队等待 | 直接拒绝 |
controlBehavior 流控效果
-
快速失败 : 这个容易理解
-
warm up : 渐进式流控,如下图
单机阀值是指每秒设计只能处理20个请求,如果请求超过20,那么经过10秒的预热后,才会开始每秒接受20个请求,初始接受请求数20/3,其他请求直接抛弃。慢慢的变多,10秒的预热后,才能接受20个
-
排队等待: 如下图
单机阈值是指设定每秒只能处理20条请求,如果超过20条就排队等待,等待超过3000毫秒的,直接抛弃。
sentinel 降级规则
概述
也称为熔断,当服务不可用时执行快速失败方法,快速释放链接。
配置说明
- 慢调用比例 每秒【待确认】内请求超过5,并且有50%的请求返回时间都大于最大RT时间,则触发降级,打开熔断器,熔断窗口期为10S
- 异常比例
每秒【待确认】内请求超过5,且50%的请求都抛出异常,则触发熔断,程序降级,熔断时常10S,超过10S恢复
- 异常数
每秒【待确认】请求超过5,且异常数大于2,则触发熔断,程序降级,熔断时间10S,超过10S恢复
sentinel 热点规则
概述
更精细化的控制,如单个接口不同的请求参数对应不同流控。应用场景为热点数据和非热点数据限流
配置说明
-
资源名 : 对应@SentinelResource(value = “getProductDetail”) 中的 value 值
-
参数索引 : 针对该接口的第0个参数
-
单机阀值 : 非 1 情况下,允许的QPS 就是10【待确定】
-
参数类型 : 索引位置是0 的参数的类型是int
-
参数值 : 第0个参数值
-
限流阀值 : 允许的QPS
-
统计时间窗口 : 统计的时间单位,一般为1S
sentinel 系统规则
概述
系统规则和热点规则不一样,热点规则是针对方法设定的,系统规则是针对一个应用设定的;
发生系统规则中配置的情况的时候,会把整个应用都断掉,所有的接口对不能对外提供服务了,这个设计很少用,因为粒度太大了,用 Sentinel 一般都是做细粒度的维护,如果设置了系统规则,可能自己都不知道怎么回事,系统就用不了了
配置说明
-
LOAD:只有在 Linux 系统的机器上才会生效,可以根据当前操作系统的负载,来决定是否触发保护(把请求拒绝掉)
-
RT:这个应用上,所有请求的平均响应时间,如果超过某个值,就停止新的请求
-
线程数:这个应用上,所有的请求消耗的线程数加起来,如果超过某个值,就停止新的请求
-
入口 QPS:这个应用上,所有接口的 QPS 加起来,如果超过某个值,就停止新的请求
-
CPU 使用率:CPU 的使用率,如果超过一个百分比,就停止新的请求;
sentinel 授权
概述
设置应用黑白名单,限制应用访问资源
配置说明
- resource:资源名,即限流规则的作用对象
- limitApp:对应的黑名单/白名单,不同 origin 用逗号分隔,如 appA,appB
- strategy:限制模式,AUTHORITY_WHITE 为白名单模式,AUTHORITY_BLACK 为黑名单模式,默认为白名单模式