sentinel下载:sentinel-dashboard-1.8.1.jar

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

sentinel中文文档

sentinel入门-LMLPHP

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

sentinel入门-LMLPHP

用户密码均为sentinel

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

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

sentinel入门-LMLPHP

实时监控

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

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

流控规则

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

sentinel入门-LMLPHP

阈值类型:QPS

sentinel入门-LMLPHP

疯狂访问testA接口会出现:

sentinel入门-LMLPHP

sentinel入门-LMLPHP

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

阈值类型:线程数

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

sentinel入门-LMLPHP

我们对testA加上800ms的延迟

sentinel入门-LMLPHP

sentinel入门-LMLPHP

sentinel入门-LMLPHP

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

sentinel入门-LMLPHP

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

流控规则:关联

sentinel入门-LMLPHP

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

sentinel入门-LMLPHP

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

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

流控效果:warm up

sentinel入门-LMLPHP

sentinel入门-LMLPHP

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

流控效果:排队等待

sentinel入门-LMLPHP

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

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

为10呢?那就是100ms喽~

sentinel入门-LMLPHP

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

sentinel入门-LMLPHP

sentinel入门-LMLPHP

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

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

明天搞熔断🐳🐳🐳🐳🐳

06-04 07:22