SpringCloud Gateway 配置路由降级

SpringCloud Gateway 配置路由降级

版本信息:
springcloud.version: Greenwich.RELEASE
springboot.version: 2.1.2.RELEASE

1.Maven中引入hystrix


   org.springframework.cloud
    spring-cloud-starter-netflix-hystrix

2.添加默认降级处理方案

package com.wukonglicai.gateway.controller;

import com.wukonglicai.common.msg.BaseResponse;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 网关hystrix降级处理
 * @author lhw
 * @since 2019/9/30 14:18
 */
@RestController
public class FallbackController {
    @RequestMapping("/defaultFallback")
    public BaseResponse fallback() {
        BaseResponse baseResponse = new BaseResponse();
        baseResponse.setStatus(503);
        baseResponse.setMessage("服务器发生hystrix降级处理");
        return baseResponse;
    }
}

注意:需要使用@RequestMapping,使用@GetMapping

3.application文件中配置超时参数

hystrix:
  command:
    fallbackcmd:
      execution:
        isolation:
          thread:
            # 设置为3秒
            timeoutInMilliseconds: 3000

4.application文件中给路由配置过滤器

routes:
        - id: wk-auth
          uri: lb://wk-auth
          order: 8000
          predicates:
            - Path=/api/auth/**
          filters:
            - StripPrefix=2
            # 路由降级配置
            - name: Hystrix
              args:
                name: fallbackcmd   #①
                fallbackUri: forward:/defaultFallback  #②

描述:
①: 该值需要与 3中配置的参数名相匹配
②: 该值与②中配置的接口路径相对应

5.进行测试

测试情况:
①.请求超时。
②.服务宕机。
③.服务发生异常。
测试方案:
①、在3中设置的超时时间为3秒,在需要调用的接口中添加休眠3秒的代码,进行测试。
②、关闭需要调用的服务。
③、在代码中抛出一个空指针异常。
SpringCloud Gateway 配置路由降级_第1张图片
SpringCloud Gateway 配置路由降级_第2张图片SpringCloud Gateway 配置路由降级_第3张图片

你可能感兴趣的:(SpringCloud Gateway 配置路由降级)