您可以通过故障注入功能向测试应用注入故障,检测应用面对异常时的处理情况。您可以根据检测的情况调整您的应用,以减少应用在正式使用时出现的异常问题。多用于测试环境。
功能简介
故障注入流程如下所示:
在微服务中,其实现方式为:
管控台 MS 拼接故障注入规则,将其发送到 DRM。
MOSN 和 RPC 客户端订阅 DRM 的 Key 值。
配置故障注入规则
登录 SOFAStack 控制台。
在左侧菜单栏选择 中间件 > 微服务平台 > 服务网格 > 服务治理,然后单击 故障注入 页签。
单击 添加注入组规则,然后配置以下参数:
参数
说明
规则名称
设置故障注入规则的名称。
应用
选择或填写目标应用的名称。星号(*)表示所有应用。
注入方向
设置故障注入的方向,可选值为:
服务端注入:在应用的服务端注入故障。
客户端注入:在应用的客户端注入故障。
服务
配置注入故障的服务。单击 切换输入模式 可在手动填写与下拉选择之间切换。
方法
配置故障注入的方法。星号(*)表示所有方法。
运行模式
配置故障注入规则的运行模式,取值如下:
拦截模式:满足条件的故障注入请求会被注入。
观察者模式:满足条件的故障注入请求不会被注入,只会在 MOSN 里打印日志。
故障类型
故障注入支持注入错误或者超时等事件,方便服务的异常测试,用于模拟服务异常的情况。取值如下:
中断异常:注入运行时异常,中断请求并返回既定的错误状态码。
超时异常:满足条件的请求,会增加响应时间,请求正常调用。
超时时间
故障类型为 超时异常 时,设置异常的超时时间。
异常比例
设置注入异常流量的比例。例如设置为 80,则只注入 80% 的异常流量。
流量精确匹配(可选)
设置流量的匹配条件,满足匹配条件的流量才会使用故障注入规则。置空此项时表示匹配所有流量。
您可以配置多条匹配条件,多个条件是“与”的关系,按顺序进行匹配。参数配置如下:
字段:可选择系统字段和请求头。
字段名:根据字段类型有不同的值。
系统字段:包括流量类型、调用方应用名、调用方 IP、服务方应用名。
请求头:请求头是指协议的请求头。例如 Dubbo 协议取的是 attachment,HTTP 协议取的是 Request Header。用户可以在应用系统中自定义请求头参数和值。
选择逻辑:包括等于、不等于、属于、不属于、正则。
字段值:字段名对应的值。
单击 提交,然后单击 确定。
在故障注入规则列表中,将刚刚创建的故障注入规则的状态改为 开启。
说明当多条故障注入规则针对同一个服务时,只会生效第一条。
编辑故障注入规则
您可以随时编辑已创建的故障注入规则,规则提交后实时生效。
在 故障注入 页签,单击目标应用左侧的加号(+)。
单击目标故障注入规则右侧的 编辑。
按需求编辑故障注入规则后,单击 提交。
删除故障注入规则
您可以删除已创建的故障注入规则,删除操作实时生效,请谨慎操作。
在 故障注入 页签,单击目标应用左侧的加号(+)。
单击目标故障注入规则右侧的 删除。
单击 确定。