目录
1.流控规则
2. 熔断规则
3.热点规则
1.流控规则
1.资源名:唯一名称,默认请求路径
2.针对来源: Sentinel可以针对调用者进行限流,填写微服务名,默认default (不区分来源)
3.阈值类型/单机阈值:
- QPS(每秒钟的请求数量):当调用该api的QPS达到阈值的时候,进行限流
- 线程数:当调用该api的线程数达到阈值的时候,进行限流
4.是否集群:不需要集群
5.流控模式:
- 直接:api达到限流条件时,直接限流
- 关联:当关联的资源达到阈值时,就限流自己
- 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流)【api级别的针对来源】
6.流控效果:
- 快速失败:直接失败,抛异常
- Warm Up:根据codeFactor (冷加载因子,默认3)的值,从阈值/codeFactor,经过预热时长,才达到设置的QPS阈值
- 排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效
2. 熔断规则
- 1.RT(平均响应时间,秒级)平均响应时间,超出阈值 且 在时间窗口内通过的请求>=5, 两个条件同时满足后触发降级。窗口期过后关闭断路器。RT最大4900 (更大的需要通过-Dcsp.sentinel.statistic.max.rt=XXXX才能生效)
- 2.异常比列(秒级)QPS >=5 且异常比例(秒级统计)超过阈值时,触发降级;时间窗口结束后,关闭降级
- 3.异常数(分钟级)异常数(分钟统计)超过阈值时,触发降级;时间窗口结束后,关闭降级
3.热点规则
何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:
- 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制
- 用户ID为参数,针对一段时间内频繁访问的用户ID 进行限制