Sentinel资源保护规则

目录

一、基于并发数和QPS的流量控制

1、并发数

2、QPS

2.1 直接拒绝(RuleConstant.CONTROL_BEHAVIOR_DEFAULT)

2.2 Warm Up(RuleConstant.CONTROL_BEHAVIOR_WARM_UP  冷启动、预热)

2.3 匀速排队(RuleConstant.CONTROL_BEHAVIOR_RATE_LIMITER)

2.4 冷启动+匀速排队(RuleConstant.CONTROL_BEHAVIOR_W)

二、调用关系流量策略

1、根据调用方限流

2、根据调用链路入口限流

3、具有关系的资源流量控制(关联流量控制)

 

Sentinel支持多种保护规则:流量控制规则、降级熔断规则、系统保护规则、来源访问控制规则、热点参数规则

一、基于并发数和QPS的流量控制

1、并发数

并发数控制规则主要是用来防止业务线程耗尽,造成阻塞。对不同的业务逻辑使用不同线程池来隔离业务自身的资源争抢问题。但是这个问题也会造成线程数量过多带来的上下文切换问题,Sentinel并发线程数量就是统计当前请求的上下文线程数量,如果超出阈值,新的请求就会被拒绝

2、QPS

QPS (Queries Per Second) 每秒查询数,当QPS超过设置的阈值时,将会触发限流策略。

通过controllerBehavior属性设置

2.1 直接拒绝(RuleConstant.CONTROL_BEHAVIOR_DEFAULT)

默认设置方式,当请求超过阈值时,后续请求抛出FlowException

2.2 Warm Up(RuleConstant.CONTROL_BEHAVIOR_WARM_UP  冷启动、预热)

防止请求量突然增大时,瞬间将系统压垮;当收到大量请求时,系统并不是直接将QPS拉到最大值,而是在一定时间内逐步增加阈值

2.3 匀速排队(RuleConstant.CONTROL_BEHAVIOR_RATE_LIMITER)

类似漏桶算法,严格控制请求通过的间隔时间,让请求匀速通过;

好处:可以处理间隔性突发流量

2.4 冷启动+匀速排队(RuleConstant.CONTROL_BEHAVIOR_W)

二、调用关系流量策略

调用关系包括调用方和被调用方,一个方法有可能是被调用方也有可能是调用方从而形成一个调用链。调用关系策略就可以根据不同维度的调用关系来触发流量控制

1、根据调用方限流

根据调用方来源进行流量控制,需要设置limitApp

  • default:表示不区分来源,所有请求都会进行流量统计
  • {some_origin_name}:设置特定的调用者,只有此调用者的请求才会进行流量统计
  • other:针对{some_origin_name}以外的调用者发起的请求进行流量统计

当有多个控制策略时,优先级顺序:{some_origin_name} -> other ->default

2、根据调用链路入口限流

当一个资源有多个调用方时,可以根据某个入口进行流量统计,相当于根据调用方限流

3、具有关系的资源流量控制(关联流量控制)

两个资源存在依赖关系或者进行资源争抢时,其中一方过多占用资源会影响另一方的效率,用关联流量控制策略就可以限制过多占用资源的一方,来保证另一方的效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值