故障注入,主要用来向测试应用注入故障以检测系统面对异常时的处理情况,多用于测试环境。在微服务中,其实现方式为:
管控台拼接故障注入规则,将其发送到 DRM。
MOSN 和 RPC 客户端订阅 DRM 的 Key 值。
故障注入支持注入错误或者超时等事件,方便服务的异常测试,用于模拟服务异常的情况。常见的异常有下述两种:
中断异常:中断请求并返回既定的错误状态码。
超时异常:按预设的时延返回请求。
故障注入原理图
前置条件
请确保 SOFABoot 版本在 3.3.3 及以上。有关 SOFABoot 的版本信息,详见 SOFABoot 版本说明。
故障注入操作
在 SOFAStack 平台 > 中间件 > 微服务平台 > 微服务 > 页面,单击 服务治理 标签,进入相应页面。选择 故障注入 标签,可以对故障注入规则进行查询、添加和编辑。
查询故障注入规则
可以根据下述内容,对鉴权规则进行查询:
应用名
服务名称
故障注入规则名称
添加注入规则
单击 添加注入规则 按钮,可配置相应的故障注入规则。
规则名称:注入规则的名称。
应用:应用名称。
注入方向:包括服务端注入和客户端注入 2 种。
服务:有下述 2 种方式来选择已经发布的服务。
从下拉框选择。
通过右侧的 切换输入模式,手动输入服务名称。该方式为兜底机制,适用于无法从下拉框中选择路由服务的场景。
注入规则:可点击页面右侧(
),来添加多条路由规则。注入规则主要内容包括:
运行模式:分为 拦截模式 和 观察者模式。2 者的主要区别在于触发熔断或者降级时的处理不同:
拦截模式:直接使服务快速失败。
观察者模式:只记录日志。
故障类型:包括下述 2 种。
中断异常:满足条件的请求,会直接抛出异常。
超时异常:满足条件的请求,会增加响应时间,请求正常调用。
故障参数配置:
异常比例
流量精确匹配:支持多条匹配规则的 与 操作。多个规则按照顺序执行,直到被某一个规则被拦截或全部通过。规则主要包括下述内容:
字段:包括系统字段和请求头。
字段名:包括流量类型、调用方应用名、调用方 IP、服务方应用名。
选择逻辑:包括等于、不等于、属于、不属于、正则。
字段值:例如调用方应用名、调用方 IP、服务方应用名、服务方服务名、服务方方法名。
编辑注入规则
故障注入规则示例
单击单个应用,可对其注入规则进行如下编辑:
添加
编辑
删除
开启 或 关闭 该条规则
在文档使用中是否遇到以下问题
更多建议
匿名提交