微服务组件Sentinel的学习(2)

限流规则

流控模式

添加限流规则,可点击高级选项,有三种流控模式选择:
直接 :统计当前资源的请求,触发闻值时对当前资源直接限流,也是默认的模式
关联 :统计与当前资源相关的另一个资源,触发阈值时,对当前资源限流
链路:统计从指定链路访问到本资源的请求,触发阈值时,对指定链路限流

直接模式

关联模式

使用场景:有两种需求同时需要占用同一资源,此时存在竞争关系,那么可以优先其中某一需求。

链路模式

有两种请求链路:

service-->query

update-->query

若只希望统计从service进入到query的请求,则可以这样配置:

流控效果

流控效果是指请求达到流控阈值时应该采取的措施,分为以下三种:
快速失败 : 达到阈值后,新的请求会被立即拒绝并抛出FowException异常。是默认的处理方式。warm up :预热模式,对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化,从一个较小值逐渐增加到最大阈值。
排队等待:让所有的请求按照先后次序排队执行,两个请求的间隔不能小于指定时长

快速失败

warm up

是应对服务冷启动的一种方案。请求阈值初始值是threshold/coldFactor,持续指定时长后,逐渐提高到threshold值。而coldFactor的默认值是3。

例如,设置QPS的threshld为15,预热时间为5秒,那么初始闻值就是 5,然后在5秒后逐渐增长到15

排队等待

当请求超过QPS阈值时,让所有请求进入一个队列中然后按照阈值允许的时间间隔依次执行。后来的请求必须等待前面执行完成,如果请求预期的等待时间超出最大时长则会被拒绝

例如:QPS为15,意味着每200ms处理一个队列中的请求;若timeout= 3000,意味着预期等待超过3000ms的请求会被拒绝并抛出异常。

热点参数限流

之前的限流是统计访问某个资源的所有请求,判断是否超过QPS闻值。而热点参数限流是分别统计参数值相同的访问量判断是否超过QPS闻值。例如id=1和id=2,分别统计QPS

代表的含义是:对sentinel_web_servlet_context这个资源的0号参数(第一个参数) 做统计,每1秒相同参数值的请求数不能超过5。

在热点参数限流的高级选项中,可以对部分参数设置例外配置:

这里的含义是对0号的long类型参数限流,每1秒相同参数的QPS不能超过5,有例外:如果参数值是100,则每1秒允许的QPS为10。

Tips:热点参数限流对默认的SpringMVC资源无效,需要利用@SentinelResource注解标记资源

相关推荐
我.佛.糍.粑22 分钟前
Shusen Wang推荐系统学习 --召回 矩阵补充 双塔模型
人工智能·学习·机器学习·矩阵·推荐算法
好奇龙猫30 分钟前
日语学习-日语知识点小记-构建基础-JLPT-N3阶段(3):语法+单词+復習
学习
今天背单词了吗9801 小时前
算法学习笔记:16.哈希算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法
DKPT2 小时前
Java观察者模式实现方式与测试方法
java·笔记·学习·观察者模式·设计模式
止观止2 小时前
深入学习前端 Proxy 和 Reflect:现代 JavaScript 元编程核心
前端·javascript·学习
真的想上岸啊3 小时前
学习C++、QT---25(QT中实现QCombobox库的介绍和用QCombobox设置编码和使用编码的讲解)
c++·qt·学习
序属秋秋秋5 小时前
《C++初阶之STL》【泛型编程 + STL简介】
开发语言·c++·笔记·学习
Chef_Chen6 小时前
从0开始学习计算机视觉--Day09--卷积与池化
深度学习·学习·计算机视觉
fengye2071617 小时前
板凳-------Mysql cookbook学习 (十一--------10)
学习·mysql·adb
白仑色9 小时前
Spring Cloud Gateway 实战指南
spring boot·微服务·路由转发·限流熔断