解决spring cloud启动报HystrixTimeoutException的问题

问题描述:Spring Cloud 项目,希望在项目启动的时候通过 feign 调用其他服务,从而初始化一些东西;具体做法是在一个 @Service 类中写一个方法a(),并使用 @PostConstruct 标注方法 a(),在 a() 方法内部,调用 @FeignClient 标注的接口中的方法;结果就出问题了,项目启动的时候会执行 a() 方法,执行 a() 方法的时候就报了 com.netflix.hystrix.exception.HystrixTimeoutException: null
在这里插入图片描述
经过一番打断点调试,最终发现是调用 @FeignClient 接口的时候,Hystrix 使用的是默认的超时时间(1秒),自己配置的超时时间没有生效。于是就百度,搞来搞去还是不行。
最后就想了想,需求无非是项目启动的时候做一下事情,干嘛非要用 @PostConstruct,换个方法实现需求不就完事了,于是采用实现 CommandLineRunner 接口的方式解决了问题。

备注:要是搞清楚了 @PostConstruct 和 CommandLineRunner 在 spring 中的生命周期的位置,以及 Hystrix 加载配置信息的时机,哪有这些破事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值