SpringCloud服务消费者第一次调用出现超时问题的解决方案


在第一次访问服务消费者的时候(消费者去调用服务提供者服务)会出现如下异常:

com.netflix.hystrix.exception.HystrixRuntimeException: TestService#hello(String) timed-out and no fallback available

解决方案是在application.properties增加如下配置信息:

#hystrix调用方法的超时时间,默认是1000毫秒
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000

 更绝的一个方案是直接禁用hystrix:

feign.hystrix.enabled=false

 

参考文章:http://www.tuicool.com/articles/vAr6Rb2

https://yq.aliyun.com/articles/61510

 

20190409补充:

服务第一次调用其实设计到多个层面。

1、服务本身:

springmvc servlet的延迟初始化:

#spring mvc的servlet在容器启动后立刻初始化
spring.mvc.servlet.load-on-startup=1

数据库连接池的初始化

 

2、ribbon的初始化

默认是懒初始化的,这里会耗一些时间,可以在容器启动的时候就去初始化ribbon

ribbon:
  eager-load:
    enabled: true
    clients: client1, client2, client3

 

参考:https://www.jianshu.com/p/75dbcf3d7904


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM