Sentinel流控规则、熔断规则、热点规则、系统规则

本文详细解读了流控规则,包括QPS阈值、并发线程数限制、快速失败与WarmUp模式,熔断规则如慢调用比例、异常处理和热点参数限流。此外,还介绍了系统级规则如CPU使用率触发的保护机制和整体应用入口的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流控规则 

资源名

指当条规则所针对的访问路径

阈值类型+ 单机阈值

针对不同的阈值类型,QPS的单机阈值代表每秒最多允许请求多少次资源,并发线程数的单机阈值代表代表可以同时运行的线程数量

流控模式

直接

代表超过阈值直接限流

关联

代表关联的资源达到阈值时也进行限流。A、B接口关联,如果A接口被限流了,那么B接口也无法访问

链路

代表当服务到达阈值时,所有使用该服务的服务也限流。A->B->C接口为链路调用关系时,当其

中一个接口出现限流,那么整个链路上的接口都无法使用

流控效果

快速失败

指直接进行限流

Warm Up

 冷启动,某个接口平时访问量不大,突然某段时间访问量突增,针对某些抽奖类型的接口。开始

时QPS的通过量为(请求数量/3),经设置预热时长才逐渐升至设定的QPS阈值。

排队等待

 就是简单队列形式的等待,让限流的请求排队等待系统空闲时再通过,需要配置超时时间,过

了超时时间再拒绝请求。

熔断规则

慢调用比例

 最大RT(请求的最大调用时间),当一个请求响应时间超过该时间就被判断为慢调用,当慢调用

的接口的比例超过比例阈值就进行熔断降级处理。

统计时长内请求资源的次数超过最小请求数,并且这些请求响应时间超过最大RT,总的慢调用

比例超过比例阈值,就进行熔断降级处理

上图表示:在1000ms内,请求/testA访问次数超过5次,请求响应时间超过100ms的比例超过0.8就

进行熔断降级处理

异常比例

 在统计时长内当请求超过最小请求数,且异常比例超过比例阈值时进行熔断降级。

异常数

 在统计时长内当请求超过最小请求数,且异常请求数超过异常数时进行熔断降级。

热点规则

针对于接口中某个参数请求次数过多,对其进行限流或者其他操作。

@GetMapping("/testHotkey")
@SentinelResource(value = "testHostkey123",blockHandler = "del_testHotkey")
public String testHotkey(@RequestParam(value = "p1",required = false) String p1,
                         @RequestParam(value = "p1",required = false) String p2)  {
    return "------testHostkey"+p1;
}

public String del_testHotkey(String p1, String p2, BlockException blockException){
    return "------del_testHotkey o(╥﹏╥)o";
}

 启动后,应针对名为@SentinelResource注解value的资源进行热点规则的添加

 参数索引代表针对从第0位开始,依次向后递增代表第几个参数,在统计窗口时长内访问次数超过

单机阈值,则会交由@SentinelResource注解blockHandler所指向的方法进行熔断处理。

高级选项-参数例外项

当某些参数为一些特殊值需要进行特殊放行的处理时,需配置该选项

 参数类型

选中之后,代表参数类型与之相符

参数值

例外项的具体参数值

限流阈值

 代表访问次数需超过该值

 表示当访问资源testHostkey123的第一个参数类型为Stirng、参数值为qwe时,限流阈值变为200

系统规则

前面规则只针对于单一资源,系统规则针对的是整个应用入口

 官网解释:

 LOAD

当系统1分钟内的load(即系统的负载)超过阈值,且并发线程数超过系统容量时触发。

建议设置为CPU核心数 * 2.5 (仅对LInux/Unix-like机器生效)

load,系统平均负载,linux中使用命令 uptime查看load指标

系统容量(sentinel计算出来的) = maxQps * minRt

maxQps: 秒级统计出来的最大QPS,minRt : 秒级统计出来的最小响应时间

RT

前面已经使用过,即是平均响应时间。当单台机器上所有入口流量的平均 RT 达到阈值即触发系

保护,单位是毫秒。

线程数

即是指线程的并发数,与前面类似。当并发线程数超过设定的阈值,就会发生服务的熔断降级

QPS

所有入口流量在1秒钟内的请求达到设置阈值都会触发。

QPS = 总请求数 / ( 进程总数 * 请求时间 )

CPU 使用率

1.5.0+ 版本,当系统 CPU 使用率超过阈值即触发系统保护(取值范围 0.0-1.0),比较灵敏。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值