# 规则影响参数
resource:资源名,即限流规则的作用对象
count: 用户设置的阈值,根据不同的策略分别表示最大RT、异常比例阈值、异常数阈值
grade: 降级策略 0:慢调用比例 1:异常比例 2:异常数量
timeWindow : 熔断时长 ,单位秒
minRequestAmount : 最小请求数,默认为5
slowRatioThreshold : 慢调用比率阈值,默认为1.0
statIntervalMs : 熔断时长,默认为1秒 ,单位毫秒
# 熔断状态
熔断有三种状态,分别为OPEN、HALF_OPEN、CLOSED。
| 状态 | 说明 |
|---|---|
| OPEN | 表示熔断开启,拒绝所有请求 |
| HALF_OPEN | 探测恢复状态,如果接下来的一个请求顺利通过则结束熔断,否则继续熔断 |
| CLOSED | 表示熔断关闭,请求顺利通过 |
# 熔断策略 (grade)
熔断降级支持慢调用比例、异常比例、异常数三种熔断策略。
# 1.慢调用比例
| 属性 | 说明 |
|---|---|
| 最大RT | 需要设置的阈值,超过该值则为慢应用 |
| 比例阈值 | 慢调用占所有的调用的比率,范围:[0~1] |
| 熔断时长 | 在这段时间内发生熔断、拒绝所有请求 |
| 最小请求数 | 即允许通过的最小请求数,在该数量内不发生熔断 |
# 执行逻辑
熔断(OPEN):
请求数大于最小请求数并且慢调用的比率大于比例阈值则发生熔断,熔断时长为用户自定义设置。
探测(HALFOPEN):
当熔断过了定义的熔断时长,状态由熔断(OPEN)变为探测(HALFOPEN)。
如果接下来的一个请求小于最大RT,说明慢调用已经恢复,结束熔断,状态由探测(HALF_OPEN)变更为关闭(CLOSED)
如果接下来的一个请求大于最大RT,说明慢调用未恢复,继续熔断,熔断时长保持一致
# 2.异常比例
通过计算异常比例与设置阈值对比的一种策略。
| 属性 | 说明 |
|---|---|
| 异常比例阈值 | 异常比例=发生异常的请求数÷请求总数取值范围:[0~1] |
| 熔断时长 | 在这段时间内发生熔断、拒绝所有请求 |
| 最小请求数 | 即允许通过的最小请求数,在该数量内不发生熔断 |
# 执行逻辑
熔断(OPEN):
当请求数大于最小请求并且异常比例大于设置的阈值时触发熔断,熔断时长由用户设置。
探测(HALFOPEN):
当超过熔断时长时,由熔断(OPEN)转为探测(HALFOPEN)
如果接下来的一个请求未发生错误,说明应用恢复,结束熔断,状态由探测(HALF_OPEN)变更为关闭(CLOSED)
如果接下来的一个请求继续发生错误,说明应用未恢复,继续熔断,熔断时长保持一致
# 3.异常数
通过计算发生异常的请求数与设置阈值对比的一种策略。
| 属性 | 说明 |
|---|---|
| 异常数 | 请求发生异常的数量 |
| 熔断时长 | 在这段时间内发生熔断、拒绝所有请求 |
| 最小请求数 | 即允许通过的最小请求数,在该数量内不发生熔断 |
# 执行逻辑
熔断(OPEN):
当请求数大于最小请求并且异常数量大于设置的阈值时触发熔断,熔断时长由用户设置。
探测(HALFOPEN):
当超过熔断时长时,由熔断(OPEN)转为探测(HALFOPEN)
如果接下来的一个请求未发生错误,说明应用恢复,结束熔断,状态由探测(HALF_OPEN)变更为关闭(CLOSED)
如果接下来的一个请求继续发生错误,说明应用未恢复,继续熔断,熔断时长保持一致
