sentinel部分使用说明

Sentinel

流控

  • 资源名:唯一名称,默认请求路径

  • 针对来源:Sentinel可以针对调用者进行限流,填写微服务名,默认default(不区分来源)

  • 阈值类型/单机阈值:

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

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

  • 是否集群

  • 流控模式:

    • 直接:api达到限流条件时,直接限流

    • 关联:当关联的资源达到阈值时,就限流自己

    • 链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,如果达到阈值,就进行限流)【api级别的针对来源】

  • 流控效果

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

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

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

降级

  • RT(平均响应时间):当1s内持续进入5个请求,对应时刻的平均响应时间(秒级)均超过阈值,那么在接下来的时间窗口之内,对这个方法的调用都会自动地熔断。注意Sentinel默认统计的RT上限是4900ms’,超出此阈值的都会算作4900ms,若需要变更此上线可以通过启动配置项-Dcsp.sentinel.statistic.max.rt=XXX来配置
  • 异常比例 (ERROR_RATIO):当资源的每秒请求量>=5,并且每秒异常总数占通过量的比值超过阈值之后,资源进入降级状态,即在接下来的时间窗口之内,对这个方法的调用都会自动地返回
  • 异常数 (ERROR_COUNT):当资源近1分钟的异常数目超过阈值之后会进行熔断。注意由于统计时间窗口是分钟级别的,若timeWindow小于60s,则结束熔断状态后仍可能再进入熔断状态

持久化

持久到Nacos

依赖:

implementation 'com.alibaba.csp:sentinel-datasource-nacos'

yml:

spring:
  application:
    name: gateway
  cloud:
    sentinel:
      datasource:
        ds1:
          nacos:
            server-addr: localhost:8848
            dataId: gateway
            groupId: DEFAULT_GROUP
            data-type: json
            rule-type: flow

nacos添加配置:

image-20201231101454194
[
    {
        "resource":"/A",
        "limitApp":"default",
        "grade":1,
        "count":1,
        "strategy":0,
        "controlBehavior":0,
        "clusterMode":false
    }
]

“resource”:资源名称
“limitApp”:来源应用
“grade”:阈值类型,0表示线程数,1表示QPS
“count”:单机阈值
“strategy”:流控模式,0表示直接,1表示关联,2表示链路
“controlBehavior”:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待
“clusterMode”:是否集群

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值