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。
超时时间我设置了,但是不知道为啥没用😢
明天搞熔断🐳🐳🐳🐳🐳