Alibaba sentinel-1

最近项目上要加上熔断,稍微看了点熔断知识。做一下总结:DegradeRule/SystemRule/ParamFlowRule

参数:SystemRule 系统规则

https://github.com/alibaba/Sentinel/wiki/如何使用

{
“resource”: “restrictAccessFreqRpc”,
“count”: 0.5,
“grade”: 1,
“limitApp”: “default”,
“timeWindow”: 2
}

指标 含义 备注
grade 熔断策略 0-慢调用比例 (SLOW_REQUEST_RATIO)1-异常比例 (ERROR_RATIO)2-异常数 (ERROR_COUNT)
count 阈值 慢调用比例模式下为慢调用临界 RT最大的响应时间(超出该值计为慢调用); 异常比例/异常数模式下为对应的阈值 异常比例 异常数目
timeWindow 熔断时长,单位为 s
limitApp 受限制的应用程序名称 将受来源限制的应用程序名称。*默认limitApp为{@code default},这意味着允许所有源应用。对于权限规则,多个源名称可以用逗号(’,’)分隔。

RuleConstant:
DEGRADE_GRADE_RT=0;
DEGRADE_GRADE_EXCEPTION_RATIO=1;
DEGRADE_GRADE_EXCEPTION_COUNT=2;

• 慢调用比例 (SLOW_REQUEST_RATIO):选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
阈值count > 单位统计时长statIntervalMs+熔断触发的最小请求数minRequestAmount > 超过熔断时长timeWindow(s)进入HALF-OPEN

• 异常比例 (ERROR_RATIO):当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。

• 异常数 (ERROR_COUNT):当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

#系统保护规则-systemrule

指标 含义 默认值
highestSystemLoad load1 触发值,用于触发自适应控制阶段 -1 (不生效)
avgRt 所有入口流量的平均响应时间 -1 (不生效)
maxThread 入口流量的最大并发数 -1 (不生效)
qps 所有入口资源的 QPS -1 (不生效)
highestCpuUsage 当前系统的 CPU 使用率(0.0-1.0) -1 (不生效)

参数:ParamFlowRule 热点规则
https://github.com/alibaba/Sentinel/wiki/热点参数限流

[
{
“resource”: “qrcode_gen”,
“grade”: 1,
“count”: 1000,
“controlBehavior”: 2,
“maxQueueingTimeMs”: 200,
“durationInSec”: 1,
“paramIdx”: 0
}
]

指标 含义 默认值
resource 资源名,必填
count 限流阈值,必填
grade 限流模式 QPS 模式
durationInSec 统计窗口时间长度(单位为秒),1.6.0 版本开始支持
controlBehavior 流控效果 (支持快速失败和匀速排队模式),1.6.0 版本开始支持
maxQueueingTimeMs 最大排队等待时长(仅在匀速排队模式生效),1.6.0 版本开始支持 0ms
paramIdx 热点参数的索引,必填,对应 SphU.entry(xxx, args) 中的参数索引位置
paramFlowItemList 参数例外项,可以针对指定的参数值单独设置限流阈值,不受前面
clusterMode 是否是集群参数流控规则 false
clusterConfig 集群流控相关配置

猜你喜欢

转载自blog.csdn.net/tsj11514oo/article/details/121072280