Spring Cloud Feign 第一次调用超时(Read timed out)的解决办法

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(1787)   2023-03-28 11:29:14
feign-client在第一次调用微服务会出现Read timed out异常,提示的报错信息:
java.net.SocketTimeoutException: Read timed out
这是由于在调用其他微服务接口前,会去请求该微服务的相关信息(地址、端口等),并做一些初始化操作,由于默认的懒加载特性,导致了在第一次调用时,出现超时的情况,解决方法主要有两种:
 

第一种办法是设置超时时间,具体设置成多少,因项目而异,配置如下:

# 全局关闭Hystrix超时,对所有微服务有效
hystrix.command.default.execution.timeout.enabled: false

# 关闭某一个微服务的超时
hystrix.command.<serviceName>.execution.timeout.enabled: false

# 全局设置超时时间为60秒
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000

# 设置某一个微服务的超时时间为60秒
hystrix.command.<serviceName>.execution.isolation.thread.timeoutInMilliseconds: 60000

# 设置ribbon超时时间
ribbon:
  ReadTimeout: 20000
  ConnectTimeout: 20000


第二种办法,也是比较推荐的方式,配置ribbon立即加载


此处需要注意的是,光配置立即加载是不生效的,还要配置客户端列表,配置如下,详细配置请参考官方说明
ribbon:
    eager-load:
        enabled: true
        clients: distribution, material-product, outer-data #需要调用的微服务名称












 
地址:https://www.leftso.com/article/903.html

相关阅读

feign-client在第一次调用微服务会出现Read timed out异常,提示的报错信息:java.net.SocketTimeoutException: Read timed out ...
在spring cloud项目中配置配置服务的地址spring.cloud.config.uri不生效的解决办法,spring cloud
随着Spring Cloud 的越来越流行,国内很多公司也在开始使用该框架了
项目源码下载:(访问密码:9987)Spring-Cloud-Circuit-Breaker.zip学习在调用底层微服务的同时利用调用的Spring Cloud Netflix堆栈组件之一Hys...
演示项目源码下载:(访问密码:9987)Spring-Cloud-discovery-server.zip 了解如何创建微服务的基础上,Spring Cloud,对Netflix的Eureka注...
演示项目源码下载:(访问密码:9987)spring-cloud-zipkin.zipZipkin是非常有效的工具分布追踪在微服务生态系统
演示项目源码下载:(访问密码:9987)spring-cloud-config-server-git.zip微服务方法现在已经成为任何新 API 开发的行业标准,几乎所有组织都在推广它
在这个 Spring cloud 教程中,学习在 spring boot/cloud 项目中使用 Netflix Ribbon 使用客户端负载平衡
演示项目源码下载:(访问密码:9987)Spring-Cloud-Consoul.zip了解如何创建微服务的基础上Spring cloud,对登记HashiCorp Consul注册服务器,以及...
错误信息 spring cloud 启动报错 No spring.config.import property has been defined 环境说明 spring ...