Loading

sentinel入门

sentinel下载:sentinel-dashboard-1.8.1.jar

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

sentinel中文文档

image-20210602211336991

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

image-20210602212057143

用户密码均为sentinel

cloud2020项目中启动cloudalibaba-sentinel-service8401模块。该模块既需要启动nacos,也需要启动sentinel。

我们调用模块中testA接口,可有:

image-20210602212659601

实时监控

我们可以对该接口实时监控。我们可以用jmeter,模拟高并发请求。比如5秒钟2000并发,我们看起状态如何,在这5秒内,我们自己再去访问testA接口,就会发现响应变慢了!

等会我们对他设置流控规则,还会看到在一段时间内,既有通过的QPS,也有拒绝的QPS,所画出的曲线将会很有意思。

流控规则

既可以在簇点链路,也可在流控规则中设置。我觉得在簇点链路中设置更方便。

image-20210603200358062

阈值类型:QPS

image-20210603200731764

疯狂访问testA接口会出现:

image-20210603200815123

image-20210603200832301

我们可以看到每秒通过的请求只有3,被拒绝的请求那就得看我手速了(手速快拒绝的多,手速慢拒绝的少)

阈值类型:线程数

线程数,允许最多三个线程去执行,超过则拒绝,添加如下规则:

image-20210603202916569

我们对testA加上800ms的延迟

image-20210603203124607

image-20210603202634726

image-20210603202647322

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

image-20210603202800025

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

流控规则:关联

image-20210603205201358

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

image-20210603205146662

我们看20:51:04~20:51:07,testB的QPS都超过30,所以testA的访问都拒绝了

20:51:08~20:51:10,testB我们停止访问,testA的访问都接受了

流控效果:warm up

image-20210603210257064

image-20210603210332948

可以看到,经过预热,我们通过的QPS才慢慢提升的30

流控效果:排队等待

image-20210603211033888

QPS为2时,每隔500ms允许通过下一个请求。

那么QPS为4时,每个250ms允许通过下一个请求

为10呢?那就是100ms喽~

image-20210603211250265

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

image-20210603212745172

image-20210603213235712

发送了200个请求,算是全走完了,共用时20s。

超时时间我设置了,但是不知道为啥没用😢

降级规则

image-20210607204121214

慢调用比例

image-20210607225624946

对testD进行测试

image-20210607225655702

设置降级规则

image-20210607225729801

问题:无论最大RT设置成多少,QPS通过总能达到36(我觉得跟最小请求数有关,但是最小请求数我修改了没用啊!!!改完人家又自己跳回到5了)。比例阈值设置成01之间,保存完再编辑打开,总是会自己跳到值1,我不知道这是不是bug。我是想不通啊。

而且关于postman和apipost这两个软件只能做串行阻塞的测试,没有办法做并发的测试!

这一点尚硅谷的周阳老师,还有csdn很多点赞的博客都写错了,不过评论区有人指出来了!

image-20210607230923249

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

热点规则

image-20210608213240503

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

image-20210608213425012

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

image-20210608213620795

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

image-20210608214137022

image-20210608213733396

image-20210608214207953

image-20210608215531438

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

posted @ 2021-06-03 21:41  KeBoom  阅读(425)  评论(0编辑  收藏  举报