Skip to content

client degrade

lbc97 edited this page Mar 16, 2023 · 4 revisions

客户端降级

降级治理是在业务高峰期时,需要临时减少对于目标服务的访问,达到降低目标服务负载;或者屏蔽对于非关键服务的访问,保持本服务的核心处理能力的治理措施。

Spring Cloud Huawei的客户端降级可以用下图表示:

          请求
consumer ------REST---|   provider(instance1)              
            响应
        <-------------|
            

spring-cloud-huawei采用如下方式来实现这种功能。

降级规则

降级治理有两种治理策略:ThrowException和ReturnNull。

  1. 开启降级, 配置如下:
servicecomb:
  matchGroup:
    demo-test-fallback: |
     matches:
      - serviceName: "MyMicroservice"
        apiPath:
          prefix: "/"
  faultInjection:
    demo-test-fallback: |
      type: abort
      percentage: 100
      fallbackType: ThrowException
      forceClosed: false

当上述配置开启时访问MyMicroservice的任意接口的请求都会被阻拦并返回错误码为500的FaultInjectionException。

servicecomb:
  faultInjection:
    demo-test-fallback: |
      type: abort
      percentage: 100
      fallbackType: ReturnNull
      forceClosed: false

当上述配置开启时访问MyMicroservice的任意接口的请求都会被阻拦并直接返回null,fallbackType默认值是ThrowException。

  1. 关闭降级, 配置如下:
servicecomb:
  faultInjection:
    demo-test-fallback: |
      type: abort
      percentage: 100
      fallbackType: ReturnNull
      forceClosed: true

从上述条件可以看出forceClosed是控制降级治理的开关,只要为true降级治理就会被关闭,默认值为false。

Clone this wiki locally