阿里云首页 金融分布式架构 SOFAStack

故障隔离

某个服务故障或者异常时,如果该服务触发熔断会造成整个服务的不可用。而故障隔离能够定位到异常的服务实例,实现实例级别精细化的隔离和摘流,使故障影响的范围更小、更可控。

配置故障隔离规则

  1. 登录 SOFAStack 控制台

  2. 在左侧菜单栏选择 中间件 > 微服务平台 > 服务网格 > 服务治理,然后单击 服务限流 页签

  3. 单击 添加限流规则,然后配置以下参数:

    参数

    说明

    规则名称

    配置故障隔离规则的名称。

    最多支持 255 个字符。

    应用

    填写客户端应用。

    运行模

    配置故障隔离规则的运行方式,取值如下:

    • 拦截模式:故障隔离规则生效,有故障的服务器会被暂时隔离。

    • 监控模式:有故障的服务器不会被隔离,只打印日志。

    时间窗口大小

    设置故障检测的时间,与 时间窗口内最少调用次数 配合,只有在指定时间段内进行指定次数的请求才会被采集。

    取值范围:(1,60]

    单位:秒

    时间窗口内最少调用次数

    设置指定时间内的最少调用请求次数。

    取值 ≥ 0。

    异常比例阈值(%)

    设置异常请求的比例,配合 异常比例倍数 参数来确定是否隔离目标服务器。

    当异常请求的比例 > 异常比例阈值 × 异常比例倍数 时,系统认为目标服务器异常,将隔离目标服务器。

    取值范围:(0,100]

    异常比例倍数

    设置异常比例的倍数,配合 异常比例阈值 参数来确定是否隔离目标服务器。

    取值 ≥ 0。

    最大隔离数量

    设置服务器的隔离数量,即多台服务器故障时最多隔离几台。

    取值 ≥ 0。

    流量精确匹配(可选)

    符合流量精确匹配的流量才进行隔离。

    可配置多条匹配规则,各匹配规则之间是与的关系。参数配置如下:

    • 字段:选择 系统字段

    • 字段名:选择 服务方应用名

    • 逻辑:包括 等于不等于属于不属于正则

    • 字段值:填入所选字段的值。

  4. 单击 提交,然后单击 确定

  5. 在故障隔离规则列表中,将刚刚创建的故障隔离规则的状态改为

配置示例

某应用有 A、B、C 三台服务器,三台服务的状态如下:

  • A:正常

  • B:异常,异常率 20%

  • C:异常,异常率 40%

已配置的故障隔离规则如下:

  • 时间窗口大小:10

  • 时间窗口内最少调用次数:20

  • 异常比例阈值:20

  • 异常比例倍数:1

  • 最大隔离数量:1

如果 10 秒内有 20 个请求,且异常率 ≥ 20%(异常比例倍数 × 异常比例阈值),会触发故障隔离规则。因为 B 的故障率更高,系统会优先将 B 隔离。此时,若将最大隔离数量调整为 2,则 A、B 均会被剔除。

编辑故障隔离规则

您可以随时编辑已创建的故障隔离规则,规则提交后实时生效。

  1. 故障隔离 页签,单击目标故障隔离规则右侧的 编辑

  2. 按需求编辑故障隔离规则后,单击 提交

删除故障隔离规则

您可以删除已创建的故障隔离规则,删除操作会实时生效,请谨慎操作。

  1. 故障隔离 页签,单击目标故障隔离规则右侧的 删除

  2. 单击 确定