zzh520yl
2017-10-19 08:33
采纳率: 0%
浏览 4.8k

spring cloud 第一次响应超时报错

在网上查看资料说是关掉熔断feign.hystrix.enabled=false,延长时间,但是都不好使,哪位大神知道还可能是那方面引起的原因?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • oyljerry 2017-10-19 12:49

    看看各种日志,看超时发生的地方

    点赞 打赏 评论
  • Sam_Deep_Thinking 2018-10-28 05:39

    这个是Ribbon的问题。由于Ribbon第一次调用的时候,才会真正去初始化Ribbon Client,这个可能会比较慢,然后才去调用远端服务,而Ribbon
    本身的默认超时时间是1秒钟,太短了,可以设置长一些。

    Ribbon 默认时间:

    public class RibbonClientConfiguration {
        public static final int DEFAULT_CONNECT_TIMEOUT = 1000;
        public static final int DEFAULT_READ_TIMEOUT = 1000;
    }
    
    

    可以如下调整:

    ribbon:
      ReadTimeout: 5000
      ConnectTimeout: 5000
    
    

    另外,你可以观察一下报的错误具体是啥,如果是下面这样的操作,说明是Ribbon超时了:

    feign.RetryableException: Read timed out executing POST http://xxxapp/xxxurl
        at feign.FeignException.errorExecuting(FeignException.java:67)
        at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)
        at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
        at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)
    
    
    点赞 打赏 评论

相关推荐