某个服务故障或者异常时,如果该服务触发熔断,会造成整个服务的不可用。而故障隔离,能够定位到异常的服务实例,实现实例级别、精细化的隔离和摘流,使故障影响的范围更小更可控。
故障隔离原理示意图隔离规则解释:3 秒内至少有 20 个请求调用,并且错误机器的异常比例平均阈值为 20%,会剔除掉异常比例 ≥ 40%(异常比例阈值 * 异常比例倍数)的机器,即会剔除 serviceApp3 这一台机器。
前置条件
请确保 SOFABoot 版本在 3.3.3 及以上。有关 SOFABoot 的版本信息,详见 SOFABoot 版本说明。
故障隔离操作
在 SOFAStack 平台 > 中间件 > 微服务平台 > 服务网格 页面,单击 服务治理 标签,进入相应页面选择 故障隔离 标签,可以对故障隔离规则进行查询、添加和编辑。
查询故障隔离规则
可以根据下述内容,对故障隔离规则进行查询:
应用名
故障隔离规则名称
添加注入规则
单击 添加隔离规则,可自定义隔离规则。
规则名称:自定义的隔离规则名。支持中、英文、数字及下划线。
应用:待隔离的应用。
隔离规则:可单击页面右侧(
),来添加多条隔离规则。隔离规则主要内容包括:
运行模式:分为 拦截模式 和 观察者模式。2 者的主要区别在于触发熔断或者降级时的处理不同:
拦截模式:直接使服务快速失败。
观察者模式:只记录日志。
时间窗口大小:默认为 10000,单位为毫秒。
时间窗口内最少调用次数:默认为 20 次。
异常比例阈值:异常机器的平均异常比例。
异常比例倍数:决定了要剔除何种异常率的机器。
最大隔离数量:有多台机器满足隔离条件时,允许隔离的机器数量。
流量精确匹配:支持多条匹配规则的 与 操作。多个规则按照顺序执行,直到被某一个规则被拦截或全部通过。规则主要包括下述内容:
字段:包括系统字段和请求头。
字段名:包括流量类型、调用方应用名、调用方 IP、服务方应用名。
选择逻辑:包括等于、不等于、属于、不属于、正则。
字段值:例如调用方应用名、调用方 IP、服务方应用名、服务方服务名、服务方方法名。
规则解析
时间窗口会和其它的条件联合起来让规则生效。假定有下述条件:
时间窗口是 10
窗口最少调用次数是 20
异常比例阈值是 20
异常比例倍数是 2
最大隔离数量是 1
如果 10s 内有 20 个请求进来,并且异常机器的平均异常率为 20%,则会把异常比例 ≥ 40%(异常比例倍数 * 异常比例阈值)的机器给隔离掉,但只隔离一台(最大隔离数量是 1)。
异常比例阈值是异常机器的平均异常比例。异常比例倍数决定了要剔除何种异常率的机器。假定有下述三台服务端:
一台正常
两台异常:异常率分别是 20%、40%。
则异常比例阈值为(20% + 40%)/2 = 30%。如果异常比例倍数为 1,则会剔除异常率大于等于 30% 的这一台机器。
编辑故障隔离规则
故障隔离规则示例
单击单个应用,可对其隔离规则进行如下编辑:
添加
编辑
删除
开启 或 关闭 该条规则
在文档使用中是否遇到以下问题
更多建议
匿名提交