场景描述

用户在consumer端使用故障注入,可以设置发往指定微服务的请求的时延和错误及其触发概率。

注意事项

延迟注入请求的延迟时间统一为毫秒级别

配置说明

故障注入配置在microservice.yaml文件中,相关配置项见下表。要开启服务消费者端的故障注入,还需要在处理链中配置消费端故障注入handler,配置示例如下:

  1. servicecomb:
  2. handler:
  3. chain:
  4. Consumer:
  5. default: loadbalance,fault-injection-consumer

故障注入配置项说明

[scope]代表故障注入的生效范围,可配置值包括全局配置_global,或指定微服务的服务名[ServiceName]。

[protocol]代表使用的通信协议,可配置值包括rest或highway。

配置项默认值取值范围是否必选含义注意
servicecomb.governance.Consumer.[scope].policy.fault.protocols.[protocol].delay.fixedDelay(0,9223372036854775807],长整形Consumer端发送延迟注入请求的延迟时间目前时间单位是毫秒
servicecomb.governance.Consumer.[scope].policy.fault.protocols.[protocol].delay.percent100(0,100],整形Consumer端发送延迟注入请求的触发概率
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].policy.fault.protocols.[protocol].delay.fixedDelay(0,9223372036854775807],长整形Consumer端发送到对应schema的延迟注入请求的延迟时间支持schema级别的配置
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].policy.fault.protocols.[protocol].delay.percent100(0,100],整形Consumer端发送到对应schema的延迟注入请求的触发概率支持schema级别的配置
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].operations.[operation].policy.fault.protocols.[protocol].delay.fixedDelay(0,9223372036854775807],长整形Consumer端发送到对应operation的延迟注入请求的延迟时间支持operation级别的配置
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].operations.[operation].policy.fault.protocols.[protocol].delay.percent100(0,100],整形Consumer端发送到对应operation的延迟注入请求的触发概率支持operation级别的配置
servicecomb.governance.Consumer.[scope].policy.fault.protocols.[protocol].abort.httpStatus(100,999],整形Consumer端发送错误注入请求的http错误码
servicecomb.governance.Consumer.[scope].policy.fault.protocols.[protocol].abort.percent100(0,100],整形Consumer端发送错误注入请求的触发概率
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].policy.fault.protocols.[protocol].abort.httpStatus(100,999],整形Consumer端发送到对应schema的错误注入请求的http错误码支持schema级别的配置
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].policy.fault.protocols.[protocol].abort.percent100(0,100],整形Consumer端发送到对应schema的错误注入请求的触发概率支持schema级别的配置
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].operations.[operation].policy.fault.protocols.[protocol].abort.httpStatus(100,999],整形Consumer端发送到对应operation的错误注入请求的http错误码支持operation级别的配置
servicecomb.governance.Consumer.[ServiceName].schemas.[schema].operations.[operation].policy.fault.protocols.[protocol].abort.percent100(0,100],整形Consumer端发送到对应operation的错误注入请求的触发概率支持operation级别的配置

示例代码

  1. servicecomb:
  2. governance:
  3. Consumer:
  4. _global:
  5. policy:
  6. fault:
  7. protocols:
  8. rest:
  9. delay:
  10. fixedDelay: 5000
  11. percent: 10
  1. servicecomb:
  2. governance:
  3. Consumer:
  4. ServerFaultTest:
  5. schemas:
  6. schema:
  7. operations:
  8. operation:
  9. policy:
  10. fault:
  11. protocols:
  12. rest:
  13. abort:
  14. httpStatus: 421
  15. percent: 100