sentinel中的QPS降级 *** 作-DegradeSlot

sentinel中的QPS降级 *** 作-DegradeSlot,第1张

sentinel通过在各种slot来实现不同的功能,其中的DegradeSlot就是根据各种规则来进降级 *** 作,下面介绍一下DegradeSlot。

DegradeSlot #entry

Degrade通过函数checkDegrade来实现降级 *** 作。先通过资源名从degradeRules中获取降级规则DegradeRule的集合,然后逐个调用DegradeRule中的函数passCheck来进行校验。

DegradeRule#passCheck

这个方法首先会去获取cut的值,如果是true那么就直接进行限流 *** 作。然后会根据resource获取ClusterNode全局节点。往下分别根据三种不同的策略来进行降级。

如果是根据响应时间进行降级,那么会获取clusterNode的平均响应时间,如果平均响应时间大于所设定的count(默认是毫秒),那么就调用passCount加1,如果passCount大于5,那么直接降级。

所以看到这里我们应该知道根据平均响应时间降级前几个请求即使响应过长也不会立马降级,而是要等到第六个请求到来才会进行降级。

我们进入到clusterNode的avgRt方法中看一下是如何获取到clusterNode的平均响应时间的。

这个方法主要是调用rollingCounterInSecond获取成功次数,然后再获取窗口内的响应时间,用总响应时间除以次数得到平均每次成功调用的响应时间。 而在时间窗口内的总相应时间和总成功次数,则是通过StatisticSlot整个slot中的滑窗功能来统计。

DEGRADE_GRADE_RT根据响应时间进行降级

这个方法中获取成功调用的Qps和异常调用的Qps,验证后,然后求一下比率,如果没有大于count,那么就返回true,否则返回false抛出异常。

们再进入到exceptionQps方法中看一下:

rollingCounterInSecond.getWindowIntervalInSec方法是表示窗口的时间长度,用秒来表示。这里返回的是1。

根据异常数降级是非常的直接的,直接根据统计的异常总次数判断是否超过count。

第一步:把手机升级到iOS6,然后打开Safari,输入网址:passsource 在这个网址可以创建Passbook的通行证。

第二步:进入网站后,你可以创建的信息,然后点击自己想创建的类型即可,例如“boarding pass(登机牌)”,点击图标即可。

第三步: 点击图标之后,进入一个列表页,下拉到最后点击“creat”就完成了一个类别的创建。

第四步:在boarding pass(登机牌)页面中右上角有“添加”按钮,点击即可以添加相应信息。

最后,Passbook添加了信息后预览。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11422135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存