流控规则
流控模式
直接
关联
链路
流控效果
1.直接->快速失败(默认的流控处理)
2. 预热(Warm Up)
公式:阈值除以coldFactor(默认值为3),经过预热时长后才会达到阈值
3.排队等待
降级规则
- RT(平均响应时间,秒级)
平均响应时间 (DEGRADE_GRADE_RT):超过阈值 且 时间窗口内的请求>=5,两个条件同时满足后触发降级,窗口期过后关闭断路器
RT 最大4900 ms,更大的需要通过启动配置项 -Dcsp.sentinel.statistic.max.rt=xxx 来配置。 - 异常比例(秒级)
QPS>=5且异常比例(秒级统计)超过阈值时,触发降级;时间窗口结束后,关闭降级 - 异常数(分钟级)
异常数(分钟统计)超过阈值时,触发降级;时间窗口结束后,关闭降级
RT
异常比例数
异常数
-------------------------------------------时间窗口一定要大于等于60秒。--------------------------------------------
因为对于异常数的统计来说是按分钟进行统计的,当时间窗口期设置为30s时,假设在第一秒的时候就达到触发熔断的条件了,30s后断路器关闭,因为异常数统计是按分钟算的,此时一分钟还没有过去,此时又会打开断路器,因此建议时间窗口期设置大于60s
热点key限流
测试:
- error (1秒1下可以,但是,超过则降级,和p1参数有关)
http://localhost:8401/testHotKey?p1=abc - error(1秒1下可以,但是,超过则降级,和p1参数有关)
http://localhost:8401/testHotKey?p1=abc&p2=33 - right(狂点不会触发降级,与p2参数无关)
http://localhost:8401/testHotKey?p2=abc
参数例外项
测试
http://localhost:8401/testHotKey?p1=5 对
http://localhost:8401/testHotKey?p1=3 错
- 当p1等于5的时候,阈值变为200
- 当p1不等于5的时候,阈值就是平常的1
前提条件 - 热点参数的注意点,参数必须是基本类型或者String