参数说明:
- 资源名:唯一名称,默认请求路径
- 针对来源:Sentinel可以针对调用者进行限流,可以写微服务名,默认为default(不区分来源)
阈值类型/单机阈值
- QPS:每秒钟的请求数量,当调用该API的QPS达到阈值时,进行限流
- 线程数:当调用该API的线程数达到阈值时,进行限流
- 是否集群:否(不打勾即代表否)
流控模式:
- 直接:API调用达到限流条件时,直接限流
- 关联:B关联A,B的调用达到阈值时,限流A(避免级联故障)
- 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,达到阈值时,进行限流)
流控效果:
- 快速失败:直接失败,抛异常
- Warm up:根据codeFactor(冷加载因子,默认为3)的值,从阈值/codeFactor,经过预热时长,才达到设置的QPS阈值
1、流控模式
直接快速失败
测试结果:
线程数
当请求/testA的线程数超过了设置的阈值,就会进行限流
关联
当/testA的请求达到阈值,就会对/testB的请求进行限流
链路
多个请求调用同一个微服务
2、流控效果
Warm Up
预热/冷启动:当系统长期处于低请求的状态下,这时流量突然增加,瞬间大量的请求可能会把系统压垮。通过Warm Up让请求缓慢增加,在一定时间内增长到设置的阈值上限,给冷系统一个预热准备的时间,避免出现故障
排队等待
图片来源:尚硅谷 - 周阳 - Spring Cloud Alibaba
评论 (0)