RT
RT-是平均响应时间(DEGRADE_GRADE_RT):当1S内持续进入5个请求时,对应时刻的平均响应时间(秒级)均超过阈值(count,以ms为单位),那么在接下的时间窗口(DegradeRule中的timeWindow,以s为单位)之内,对这个 方法的调用队徽自动熔断(抛出DegradeException)。注意Sentinel默认统计的RT上线是4900ms,超出此阈值的都会算作4900ms,若需要变更此上线可以在启动配置项中 -Dcsp.sentinek.statistic.max.rt=xxx来配置。

一秒钟必须5个请求访问,并且平均响应时间要大于降级设置的阀值,这两个条件必须同时满足,如果满足后断路器将会打开,断路器一旦打开后后面的请求访问就会返回友好提示,然后等待设置的时间窗口期过了,自动关闭断路器,从而达到降级效果!
测试代码
RT降级设置

JMeter访问测试

访问测试

这里Jmeter每秒10个请求,不停的发送,这是大于第一个条件也就是1秒内请求5个,然后代码中线程休眠1秒,这也就是为了满足第二个条件,响应时间大于设定的RT值,那么这里从浏览器发出的请求将会进入降级,也就是返回友好界面!
异常比例
异常比例(DEGRADE_GRADE_EXCEPTION_RATIO):当资源的每秒请求数量>=5,并且每秒异常总数占通过量的比值超过阈值(DegradeRule中的count)之后,资源进入降级状态,即在接下来的时间窗口(DegradeRule中的timeWindow,以s为单位)之内,对这个方法的调用都会自动的返回,异常比例的阈值范围是0-1,代表0%-100%

一秒钟必须5个请求访问,并且异常数大于降级设置的阀值,这两个条件必须同时满足,如果满足后断路器将会打开,断路器一旦打开后后面的请求访问就会返回友好提示,然后等待设置的时间窗口期过了,自动关闭断路器,从而达到降级效果!
测试代码
异常比例设置

JMeter访问测试

访问测试

这里Jmeter每秒10个请求,不停的发送,这是大于第一个条件也就是1秒内请求5个,然后代码中每次报错,这也就是为了满足第二个条件,异常比例数大于设定的阈值,那么这里从浏览器发出的请求将会进入降级,也就是返回友好界面!如果把Jmeter停掉,在访问那么就直接报错

这个报错就是我们自己程序代码报的错!
异常数
异常数(DEGRADE_GRADE_EXCEPTION_COUNT):当资源近1分钟的异常数目超过阈值之后进行熔断,注意由于统计时间窗口是分钟级别的,若timeWindow小于60s,这结束熔断状态任可能再进入熔断状态

也就是1分钟内访问的请求的错误次数大于设定的阈值后自动进入降低!
设置异常数

浏览器访问测试
这里报错的测试代码不变,然后浏览器访问5次!都是下面这个界面

当请求第6次是,这里61秒内请求错误数也就大于5了,那么就开始降级

那么需要等待61秒的剩余时间窗口后才能关闭断路器!
















