0%

Sentinel流控

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,否则无效