resttemplate的ReadTimeout和ConnectTimeout
问题描述:
今天,在做微服务开发中,A服务区调用B服务,获取数据做导出excel操作。A服务出现了“java.net.SocketTimeoutException: Read timed out ”错误。
ConnectTimeout 连接超时
指的是 建立连接超时,也就是 A服务连接不上B服务,也许是B服务挂掉了,会抛出"java.net.SocketException: connetct time out",也许是网络差到不能建立连接的地步。
ReadTimeout 读写超时
指的是建立连接成功后 从服务器读取超时,就像我遇到的这种情况样。B服务需要查询大量的数据,进行准备。A在一定时间后,抛出"java.net.SocketTimeoutException: Read timed out
ConnectionRequestTimeout
连接不共用的时候,等待连接超时。
关于参数的设置
建议:
ConnectTimeout大小视网络环境
ReadTimeout大小视应用程序操作,适当大一点。
ConnectionRequestTimeout 不宜过长。
@Configuration public class BeanConfig{ @Bean public RestTemplate createRestTemplate(){ HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); httpRequestFactory.setConnectionRequestTimeout(3000); httpRequestFactory.setConnectTimeout(3000); httpRequestFactory.setReadTimeout(6000); return new RestTemplate(httpRequestFactory); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2018-07-06 等额本息还款计算公式
2017-07-06 Spring Boot启动流程详解(一)
2017-07-06 spring boot应用启动原理分析
2017-07-06 Spring Boot 配置文件详解:Properties和YAML
2017-07-06 Spring Boot 属性配置和使用
2017-07-06 Maven 搭建spring boot多模块项目
2017-07-06 SpringBoot 使用(三): 配置文件详解