sentinel下载:sentinel-dashboard-1.8.1.jar
下载完成后进入sentinel-dashboard-1.8.1.jar的文件夹,在cmd中输入java -jar sentinel-dashboard-1.8.1.jar

输入地址:http://localhost:8080/#/login

用户密码均为sentinel
在cloud2020项目中启动cloudalibaba-sentinel-service8401模块。该模块既需要启动nacos,也需要启动sentinel。
我们调用模块中testA接口,可有:

实时监控
我们可以对该接口实时监控。我们可以用jmeter,模拟高并发请求。比如5秒钟2000并发,我们看起状态如何,在这5秒内,我们自己再去访问testA接口,就会发现响应变慢了!
等会我们对他设置流控规则,还会看到在一段时间内,既有通过的QPS,也有拒绝的QPS,所画出的曲线将会很有意思。
流控规则
既可以在簇点链路,也可在流控规则中设置。我觉得在簇点链路中设置更方便。

阈值类型:QPS

疯狂访问testA接口会出现:


我们可以看到每秒通过的请求只有3,被拒绝的请求那就得看我手速了(手速快拒绝的多,手速慢拒绝的少)
阈值类型:线程数
线程数,允许最多三个线程去执行,超过则拒绝,添加如下规则:

我们对testA加上800ms的延迟



我模仿20个线程去访问testA接口,结果如下:

一共20,在这两个800ms中最多创建3个线程去执行testA接口,所以5+1一共完成6个请求,其余的都拒绝了。
流控规则:关联

当访问testB的QPS超过30,则访问testA失败

我们看20:51:04~20:51:07,testB的QPS都超过30,所以testA的访问都拒绝了
20:51:08~20:51:10,testB我们停止访问,testA的访问都接受了
流控效果:warm up


可以看到,经过预热,我们通过的QPS才慢慢提升的30
流控效果:排队等待

QPS为2时,每隔500ms允许通过下一个请求。
那么QPS为4时,每个250ms允许通过下一个请求
为10呢?那就是100ms喽~

每秒允许通过10个请求,如果请求等待时间超过1000ms则拒绝该请求


发送了200个请求,算是全走完了,共用时20s。
超时时间我设置了,但是不知道为啥没用😢
降级规则

慢调用比例

对testD进行测试

设置降级规则

问题:无论最大RT设置成多少,QPS通过总能达到36(我觉得跟最小请求数有关,但是最小请求数我修改了没用啊!!!改完人家又自己跳回到5了)。比例阈值设置成01之间,保存完再编辑打开,总是会自己跳到值1,我不知道这是不是bug。我是想不通啊。
而且关于postman和apipost这两个软件只能做串行阻塞的测试,没有办法做并发的测试!
这一点尚硅谷的周阳老师,还有csdn很多点赞的博客都写错了,不过评论区有人指出来了!

那就这样吧!!在爱都曲终人散了,那就这样吧,在爱都无需挣扎~
热点规则

测试热点规则,接受p1和p2参数,对此热点接口可以QPS如果超过阈值,则去执行deal_testHotKey方法

每秒请求超过1,则去返回deal_testHotKey方法的内容

可精确到参数,比如对第一个参数(参数索引从0开始)




通过的总是一半一半,而且应该总和为250QPS,但是总和为500,不知为啥。可能跟jmeter的启动线程方式有关系吧。
