这里feign使用Hystrix 失效问题

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

慕后端2513554

2019-06-06

1.order的.yml文件里面设置了

feign:
  hystrix:
    enabled: true

2.feign接口

import org.springframework.cloud.openfeign.FeignClient;

@FeignClient(
    name = "product",
    fallback = ProductClient.ProductFallBack.class
)
public interface ProductClient {
    @PostMapping({"/msg"})
    String getMsg();

    @PostMapping({"/product/listForOrder"})
    List<ProductInfoOutput> listForOrder(List<String> var1);

    @PostMapping({"/product/decreaseStock"})
    void decreaseStock(List<DecreaseStockInput> var1);

    @Component
    public static class ProductFallBack implements ProductClient {
        public ProductFallBack() {
        }

        public String getMsg() {
            return "product 服务繁忙 请稍后重试";
        }

        public List<ProductInfoOutput> listForOrder(List<String> productIdList) {
            return null;
        }

        public void decreaseStock(List<DecreaseStockInput> cartDTOS) {
        }
    }
}

3.启动类中注解:

@SpringCloudApplication
@ComponentScan(basePackages = "com.muhua")//包名正确,可以扫描到接口并注入

问题所在:
项目可以正常启动,但是就是每次不管product存不存在,都是使用垄断方法,访问不到product-server项目

写回答

2回答

慕沐1517900

2019-07-17

尝试在配置文件里添加:

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: ***

将超时时间调大一点,问具体参考https://github.com/spring-cloud/spring-cloud-netflix/issues/1612

0
0

廖师兄

2019-06-06

可能是不能正常访问product导致,你把这行代码先去掉,能拿到结果吗。

fallback = ProductClient.ProductFallBack.class


0
0

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

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

5672 学习 · 2489 问题

查看课程