Spring Boot使用Feign客户端调用远程服务时出现:timed-out and no fallback available,failed and no fallback available的...

timed-out and no fallback available:

这个错误基本是出现在Hystrix熔断器,熔断器的作用是判断该服务能不能通,如果通了就不管了,调用在指定时间内超时时,就会通过熔断器进行错误返回。

一般设置如下配置的其中一个即可:

1、把时间设长

这里设置5秒

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000  

2、把超时发生异常属性关闭

hystrix.command.default.execution.timeout.enabled=false  

3、禁用feign的hystrix 

feign.hystrix.enabled: false  

failed and no fallback available:

而通过上面设置只是针对熔断器的错误关闭,并不能解决根本问题,比如Feign客户端调用远程服务时,默认为8秒超时时间,如果在规定时间内没有返回,同样会跳转到熔断器进行处理。即使关闭了熔断器的错误,但是总的错误处理还会是有这个问题出现。

那么要解决根本问题,就要从请求超时时间入手,因为有些服务可能存在调用时间长的问题,所以直接配置:

ribbon.ReadTimeout=60000
ribbon.ConnectTimeout=60000

这些才是真正解决请求超时的问题,如果不设置这个,被调用接口很慢时,会出现Read Timeout on Request。

而针对调用失败重试的次数也可以设置:

ribbon.maxAutoRetries=0

 

参考:

https://github.com/spring-cloud/spring-cloud-netflix/issues/321

https://stackoverflow.com/questions/38080283/how-to-solve-timeout-feignclient

http://www.itmuch.com/spring-cloud-feign-ribbon-first-request-fail/

https://github.com/spring-cloud/spring-cloud-netflix/issues/696

http://www.jianshu.com/p/0eb13fd033a8

http://blog.csdn.net/qwlzxx/article/details/77163268

http://blog.csdn.net/clementad/article/details/54315805

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值