feign在配置文件配置超时无效

来源:10-6 feign-hystrix的使用

主打情歌

2019-06-20

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
    </properties>
hystrix:
  command:
    #    default: #全局配置服务配置超时
    #      execution:
    #        isolation:
    #          thread:
    #            timeoutInMilliseconds: 5000
    feignHystrixTestOverTime:   #单独为某个方法配置超时时间
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 3000
feign:  #feign使用Hystrix
  hystrix:
    enabled: true
  client:
    config:
      feignHystrixTestOverTime:
        connectTimeout: 3000
        readTimeout: 3000
@RestController
@RequestMapping("/Hystrix")
public class HystrixFeignController {
    @Autowired
    private RibbonServerClient ribbonServerClient;

    @GetMapping("/FeignHystrixTestOverTime")
    @HystrixCommand
    public String feignHystrixTestOverTime() {

        return ribbonServerClient.feignOverTime();
    }
@FeignClient(name = "server", fallback = RibbonServerClient.RibbonServerFallback.class)
public interface RibbonServerClient {

    /**
     * 测试请求 Feign 使用 Hystrix
     * @Method: GET
     * @author show
     * @date 18:12 2019/6/19
     * @return java.lang.String
     */
    @GetMapping("/HystrixServer/HystrixOverTimeTest")
    String feignOverTime();

    /**
     * 服务降级触发类
     * @author xuanweiyao
     * @date 18:15 2019/6/19
     * @Component 作为组件
     */
    @Component
    @Slf4j
    class RibbonServerFallback implements RibbonServerClient {

        @Override
        public String feignOverTime() {
            // 触发服务降级返回
            log.info("feign接口请求异常,触发断路器,返回null");
            return "feign接口请求异常,触发断路器,返回null";
        }
    }
}

请求过去的服务是延时2秒返回的,不知道为什么feign不能针对方法名进行超时配置。
请问老师,feign应该如何针对方法名配置。

写回答

1回答

廖师兄

2019-06-20

Greenwich版本太新,问题很多,先保持和我课程里一样的版本

0
2
廖师兄
回复
主打情歌
只要Hystrix的超时时间大于Ribbon的超时时间就没问题了。是要的。熔断是最最终的做法。如果熔断时间比ribbon时间还短,那服务自己通信必然出问题。一门课内容有限,无法面面俱到,还请谅解。
2019-06-24
共2条回复

SpringCloud Finchley(M2+RELEASE+SR2)微服务实战

SpringCloud组件实现微服务,【已升级Finchley.Release】

5672 学习 · 2489 问题

查看课程