持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
1 流控规则基本介绍
点击流控规则页面的新增流控规则可以新增流控规则
2 对应参数解释
- 资源名:唯一名称,默认请求路径名
- 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)
- 阈值类型/单机阈值:
- QPS(每秒钟的请求数量):当调用该API的QPS达到阈值的时候,进行限流.超过这个阈值的会被阻挡在外。
- 线程数:当调用该API的线程数量达到阈值的时候,进行限流
- 是否集群:当前不需要集群
- 流控模式:
- 直接:API达到限流条件时,直接限流
- 关联:当关联的资源达到阈值时,就限流自己
- 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流)(API级别的针对来源)
- 流控效果:
- 快速失败:直接失败,抛异常
- Wam Up:根据codeFactor(冷加载因子,默认3)的值,从阈值/codeFacotor,经过预热时长,才达到设置的QPS阈值
- 排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效
3 实操
3.1 QPS直接失败
3.1.1 添加有两种方式,可以直接在流控规则选项中添加,也可以在簇点链路中添加,一般在簇点链路中添加
3.1.2 给"/testA"添加流控。
这里的意思就是我们现在单机阈值设定为1,代表的是当前这个接口只能被1秒访问一次,超过这个阈值,就会被Sentinel阻塞,现在默认为直接失败,也就是会在前台有一个体现
3.2 线程数直接失败
这里的意思是,当有多个线程请求这个接口的时候,只同时允许一个线程执行该接口。
当多次请求的时候,其余的会返回错误。