Sentinel 嘚吧嘚

阈值类型/单机阈值:

  QPS(每秒的请求数量):当调用该api的QPS达到阈值时,进行限流

  线程数:当调用该api的线程数达到阈值的时候,进行限流

是否集群:不需要

流控模式:

  •  直接:api达到限流条件时,直接限流
    
  •  关联:当关联的资源达到阈值时,就限流自己
    
  •  链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流)【别的针对来源】
    

流控效果:

  快速失败:直接失败,抛异常

  Warm Up:根据codeFactor(冷加载因子,默认3)的值,从阈值/codeFactor,经过预热时长,才达到设置的QPS阈值

  排队等待:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效

Sentinel 降级

  •  RT(平均响应时间,秒级):平均响应时间 超出阈值 且在时间窗口内通过的请求>=5,两个条件同时满足后触发降级,时间窗口过期后关闭断路器,RT最大4900(更大的需要通过-Dscp.sentinel.statistic.max.rt=XXXX才能生效)
    
  •  异常比例(秒级):QPS >= 5 且异常比例(秒级统计)超过阈值时,触发降级,时间窗口结束后,关闭降级
    
  •  异常数
    

    当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都自动熔断(默认行为是抛出DegradeException)
    另外,相对于Hystrix,Sentinel的断路器是没有半开状态的 —————— 半开的状态系统自动去检测是否请求有异常,没有异常就关闭断路器恢复使用,有异常则继续打开断路器不可用。具体可以参考Hystrix

posted @ 2020-08-17 20:55  九角冰山  阅读(139)  评论(0编辑  收藏  举报