所有代码都在github上:https://github.com/demonruin/cloud2020/tree/master
一、流控规则 :流量限制控制规则
Sentinel-dashboard中的流控规则菜单项:
- 资源名:唯一名称,默认请求路径
- 针对来源: Sentine可以针对调用者进行限流,填写微服务名,默认default (不区分来源)
- 阈值类型/单机阈值:
- QPS (每秒钟的请求数量) :当调用该api的QPS达到阈值的时候,进行限流
- 线程数:当调用该api的线程数达到阈值的时候,进行限流
- 是否集群:不需要集群
- 流控模式:
- 直接: api达到限流条件时,直接限流
- 关联:当关联的资源达到阈值时,就限流自己
- 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流) [ api级别的针对来源]
- 流控效果:
- 快速失败:直接失败,抛异常
- Warm Up:根据codeFactor (冷加载因子,默认3)的值,从阈值/codeFactor, 经过预热时长,才达到置的QPS阈值
- 排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效
二、流控模式:
配置流控模式有两种方法:
1、在簇点链路中找到对应的资源名(即访问路径---唯一的),然后操作添加 流控
2、在流控规则里面 新增流控规则 填写 资源名等配置,和1操作等同
下面对不同的模式进行测试:
1、default模式:
就是直接-->快速失败模式 也即系统默认模式,进行测试设置,查看测试结果:设置default、QPS类型,单机阈值为1(即1秒请求一次),流控模式为直接、流控效果为快速失败。