Sentinel流控
流控就是流量控制,Sentinel可以对每个接口进行流控
流量控制规则 (FlowRule)
重要属性:
Field | 说明 | 默认值 |
---|---|---|
resource | 资源名,资源名是限流规则的作用对象 | |
count | 限流阈值 | |
grade | 限流阈值类型,QPS 或线程数模式 | QPS 模式 |
limitApp | 流控针对的调用来源 | default ,代表不区分调用来源 |
strategy | 调用关系限流策略:直接、链路、关联 | 根据资源本身(直接) |
controlBehavior | 流控效果(直接拒绝 / 排队等待 / 慢启动模式),不支持按调用关系限流 | 直接拒绝 |
对应的dashboard页面上是
- 资源名: 唯一名称,默认是请求路径
- 针对来源: 针对调用者进行限流,微服务名称,默认是default,即不区分访问来源
- 阈值类型:
- QPS:每秒钟的请求量,当调用该api的QPS达到阈值时,进行限流
- 线程数: 当调用该api的线程数达到阈值时,进行限流
- 流控模式
- 直接:api达到限流条件时,直接限流
- 关联:当关联的资源达到阈值时,限流自己,关联的资源使用关联资源的请求路径
- 链路:只记录指定链路的流程(指定资源从入口资源进来的流量,达到阈值,则进行限流)
- 流控效果:
- 快速失败:直接失败,抛出异常(Blocked by Sentinel (flow limiting))
- Warm up:根据coldFactor(冷加载因子,默认3)的值,从阈值/coldFactor,经过预热时长,才达到设置的QPS
- 排队等待:匀速排队,让请求以匀速的速度通过,对应漏桶算法,阈值类型必须设置为QPS,否则无效