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

编程教程 > Java > Spring Cloud (3314) 2024-11-26 14:39:04

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 #需要调用的微服务名称













 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
feign-client在第一次调用微服务会出现Read timed out异常,提示的报错信息:java.net.SocketTimeoutException: Read timed out ...
1. 什么是 spring cloud?spring cloud 是一系列框架的有序集合
随着Spring Cloud 的越来越流行,国内很多公司也在开始使用该框架了
环境说明spring cloud 2021.04 spring cloud alibaba 2021.0.4 spring boot 2.6.13 nacos 2.2.3 问题排查...
项目源码下载:(访问密码: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是非常有效的工具分布追踪在微服务生态系统
前言最近在学习springcloud,在进行springboot拆分成springcloud项目的时候,我使用feign来进行微服务的调用,遇到了一些坑,特此总
演示项目源码下载:(访问密码:9987)spring-cloud-config-server-git.zip微服务方法现在已经成为任何新 API 开发的行业标准,几乎所有组织都在推广它
在这个 Spring cloud 教程中,学习在 spring boot/cloud 项目中使用 Netflix Ribbon 使用客户端负载平衡
演示项目源码下载:(访问密码:9987)Spring-Cloud-Consoul.zip了解如何创建微服务的基础上Spring cloud,对登记HashiCorp Consul注册服务器,以及...
项目源码下载:(访问密码:9987)spring-cloud-apigateway_zuul.zip学习使用Netflix Zuul及其与Spring Cloud 的牢固结合来创建负载均衡器
Spring Cloud FeignClient fallbackFactory配置详解一般FeignClient需要指定一个fallbackFactory或者fallback,一个一个接口的实...
项目源码下载:(访问密码:9987)spring-cloud-dashboards.zip在交付基于微服务的应用程序时,广泛使用 Spring Boot 和 Spring Cloud
Java编程之Spring Cloud Hystrix Circuit熔断/断路