篇首语:本文由编程笔记#小编为大家整理,主要介绍了手把手带你领略双十一背后的核心组件Sentinel之流控规则相关的知识,希望对你有一定的参考价值。
简单了说就是流量控制(所谓的流量就是请求或者叫访问)
每秒请求数,当API的QPS达到阈值时进行限流
当请求API的线程数达到阈值时进行限流
连
续
刷
新
,
当
我
间
隔
1
s
访
问
时
,
访
问
的
是
正
常
数
据
{连续刷新,当我间隔1s访问时,访问的是正常数据}
连续刷新,当我间隔1s访问时,访问的是正常数据
连
续
刷
新
,
当
我
间
隔
<
1
s
时
&#xff0c;
会
访
问
到
系
统
默
认
数
据
{连续刷新&#xff0c;当我间隔<1s时&#xff0c;会访问到系统默认数据}
连续刷新&#xff0c;当我间隔<1s时&#xff0c;会访问到系统默认数据
使用JMeter进行模拟并发测试
零基础带你入门JMeter-模拟高并发接口测试&#xff0c;小白教程&#xff01;:https://blog.csdn.net/Kevinnsm/article/details/117302197?spm&#61;1001.2014.3001.5501
首先先了解一下什么是关联&#xff0c;所谓关联就是一个接口依赖另外一个接口&#xff0c;当后者的资源达到阈值时&#xff0c;会发生限流&#xff0c;而这个限流是限制的前者。比如接口A依赖接口B&#xff0c;接口B的QPS达到阈值&#xff0c;然后会对A进行限流
为
什
么
要
这
样
做
呢
&#xff1f;
{为什么要这样做呢&#xff1f;}
为什么要这样做呢&#xff1f;
这是为了保障那些非常重要的接口&#xff0c;如果某银行的信息修改接口能和支付接口相比吗&#xff1f;
使
用
p
o
s
t
m
a
n
模
拟
测
试
{使用postman模拟测试}
使用postman模拟测试
当从某个接口过来的资源达到限流条件时&#xff0c;开启限流
比
如
我
A
接
口
和
B
接
口
同
时
调
用
同
一
个
服
务
&#xff0c;
如
果
A
的
Q
P
S
达
到
阈
值
就
会
对
A
进
性
限
流
&#xff0c;
而
B
不
会
受
任
何
影
响
{比如我A接口和B接口同时调用同一个服务&#xff0c;如果A的QPS达到阈值就会对A进性限流&#xff0c;而B不会受任何影响}
比如我A接口和B接口同时调用同一个服务&#xff0c;如果A的QPS达到阈值就会对A进性限流&#xff0c;而B不会受任何影响
这个快速失败前面都使用过&#xff0c;就是当QPS或者线程数达到阈值时直接返回默认数据&#xff01;
Warm Up主要应对这一种情况&#xff0c;服务器中的某个API平常没人访问&#xff0c;突然一下来了海量的请求&#xff0c;如果直接放进来&#xff0c;那系统就直接GG了&#xff1b;所以需要预热&#xff0c;(比如我最开始处理QPS&#61;3的访问量&#xff0c;慢慢的经过10秒后&#xff0c;我能处理QPS&#61;10的访问量&#xff0c;就是这个意思&#xff0c;需要一定的时间预热&#xff09;
初始值怎么计算呢&#xff1f;比如上方这张图&#xff0c;初始的QPS&#61;9/3&#61;3&#xff0c;经过五秒后能达到QPS&#61;9&#xff0c;系统默认值是除以3.
所谓的排队等待就是如果达到了阈值&#xff0c;那么其他的请求就在一边排队等着
上面我设置了QPS&#61;1的阈值&#xff0c;也就是一秒只能一个请求&#xff1b;超过了就在那等着
然后从控制台就可以看出一秒处理一个请求