官网解释:慢调用比例 (SLOW_REQUEST_RATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
一、名词解释
1.调用:一个请求发送到服务器,服务器给与响应,一个响应就是一个调用。
2.RT:响应时间,指系统对请求作出响应的时间。
3.慢调用:当调用的时间(响应的实际时间)>设置的RT的时,这个调用叫做慢调用。
4.慢调用比例:在所以调用中,慢调用占有实际的比例,= 慢调用次数 / 调用次数
5.比例阈值:自己设定的 , 慢调用次数 / 调用次数=比例阈值
统计时长:时间的判断依据
最小请求数:设置的调用最小请求数
二、状态转换
进入熔断状态判断依据:当统计时常内,实际请求数目大于最小请求数目,慢调用比例> 比例阈值 ,进入熔断状态
②熔断状态:在接下来的熔断时长内请求会自动被熔断
③探测恢复状态:熔断时长结束后进入探测恢复状态
④结束熔断:在探测恢复状态,如果接下来的一个请求响应时间小于设置的慢调用 RT,则结束熔断
否则继续熔断。
三、实例测试
1.熔断规则设置
2.服务器响应时长设置:暂停1秒,所以响应一个请求的时长都大于1秒
3.熔断推测:
熔断条件:
在1000毫秒,也就是1秒内,如果发送到/testD 的请求数数量大于5,并且在这些请求中,所有请求的响应时长(因为比例与阈值为1,所以是所有的请求响应时长)都大于500毫秒,也就是都大于0.5秒的时候,进入熔断状态。
4.jmeter测试
①设置测试地址
②设置线程和组
10个线程,在一秒的时间内发送完。
又因为服务器响应时长设置:暂停1秒,所以响应一个请求的时长都大于1秒
综上符合熔断条件,所以当线程开启1秒后,进入熔断状态
③测试:
Ⅰ.开启十个线程
Ⅱ.控制台显示
Ⅲ、浏览器测试熔断
关闭十个线程,再进行浏览器测试
正常访问