全部产品

故障注入

故障注入,主要用来向测试应用注入故障以检测系统面对异常时的处理情况,多用于测试环境。在微服务中,其实现方式为:

  • 管控台拼接故障注入规则,将其发送到 DRM。

  • MOSN 和 RPC 客户端订阅 DRM 的 Key 值。

故障注入支持注入错误或者超时等事件,方便服务的异常测试,用于模拟服务异常的情况。常见的异常有下述两种:

  • 中断异常:中断请求并返回既定的错误状态码。

  • 超时异常:按预设的时延返回请求。

故障注入原理图故障注入.png

前置条件

请确保 SOFABoot 版本在 3.3.3 及以上。有关 SOFABoot 的版本信息,详见 SOFABoot 版本说明

故障注入操作

SOFAStack 平台 > 中间件 > 微服务平台 > 微服务 > 页面,单击 服务治理 标签,进入相应页面。选择 故障注入 标签,可以对故障注入规则进行查询、添加和编辑。

查询故障注入规则

可以根据下述内容,对鉴权规则进行查询:

  • 应用名

  • 服务名称

  • 故障注入规则名称

添加注入规则

单击 添加注入规则 按钮,可配置相应的故障注入规则。故障注入规则.png

  • 规则名称:注入规则的名称。

  • 应用:应用名称。

  • 注入方向:包括服务端注入和客户端注入 2 种。

  • 服务:有下述 2 种方式来选择已经发布的服务。

    • 从下拉框选择。

    • 通过右侧的 切换输入模式,手动输入服务名称。该方式为兜底机制,适用于无法从下拉框中选择路由服务的场景。

  • 注入规则:可点击页面右侧(加号.png),来添加多条路由规则。注入规则主要内容包括:

    • 运行模式:分为 拦截模式观察者模式。2 者的主要区别在于触发熔断或者降级时的处理不同:

      • 拦截模式:直接使服务快速失败。

      • 观察者模式:只记录日志。

    • 故障类型:包括下述 2 种。

      • 中断异常:满足条件的请求,会直接抛出异常。

      • 超时异常:满足条件的请求,会增加响应时间,请求正常调用。

    • 故障参数配置

      • 异常比例

      • 流量精确匹配:支持多条匹配规则的 操作。多个规则按照顺序执行,直到被某一个规则被拦截或全部通过。规则主要包括下述内容:

        • 字段:包括系统字段和请求头。

        • 字段名:包括流量类型、调用方应用名、调用方 IP、服务方应用名。

        • 选择逻辑:包括等于、不等于、属于、不属于、正则。

        • 字段值:例如调用方应用名、调用方 IP、服务方应用名、服务方服务名、服务方方法名。

编辑注入规则

故障注入规则示例故障注入规则-1.png

单击单个应用,可对其注入规则进行如下编辑:

  • 添加

  • 编辑

  • 删除

  • 开启关闭 该条规则