易筋SpringBoot 2.1 | 第三十六篇:Spring Boot RestTemplate超时配置示例
在这个spring boot2 RestTemplate超时示例中,学习使用示例在Spring RestTemplate中配置连接超时和读取超时。
1. RestTemplate默认超时
默认情况下,RestTemplate使用SimpleClientHttpRequestFactory取决于默认配置HttpURLConnection。查看类源代码,您将找到它。
// RestTemplate默认超时
private int connectTimeout = -1;
private int readTimeout = -1;
默认情况下,resttemplate使用安装在计算机上的JDK中的timeout属性,该属性始终infinite不被覆盖。要覆盖默认的JVM超时,我们可以在JVM启动期间传递这些属性。
// 覆盖JVM中的默认超时
-Dsun.net.client.defaultConnectTimeout=<TimeoutInMiliSec>
-Dsun.net.client.defaultReadTimeout=<TimeoutInMiliSec>
2. RestTemplate与SimpleClientHttpRequestFactory超时
要以编程方式覆盖超时属性,我们可以如下自定义SimpleClientHttpRequestFactory类。
//Create resttemplate
RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());//Override timeouts in request factory
private SimpleClientHttpRequestFactory getClientHttpRequestFactory()
{SimpleClientHttpRequestFactory clientHttpRequestFactory= new SimpleClientHttpRequestFactory();//Connect timeoutclientHttpRequestFactory.setConnectTimeout(10_000);//Read timeoutclientHttpRequestFactory.setReadTimeout(10_000);return clientHttpRequestFactory;
}
3.带有HttpComponentsClientHttpRequestFactory的RestTemplate超时
SimpleClientHttpRequestFactory可以帮助设置超时,但功能非常有限,在实时应用程序中可能不够用。在生产代码,我们可能要使用HttpComponentsClientHttpRequestFactory支持HTTP客户端库resttemplate一起。
HTTPClient提供了其他有用的功能,例如连接池,空闲连接管理等。
:Spring RestTemplate + HttpClient配置示例
//Create resttemplate
RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());//Override timeouts in request factory
private SimpleClientHttpRequestFactory getClientHttpRequestFactory()
{HttpComponentsClientHttpRequestFactory clientHttpRequestFactory= new HttpComponentsClientHttpRequestFactory();//Connect timeoutclientHttpRequestFactory.setConnectTimeout(10_000);//Read timeoutclientHttpRequestFactory.setReadTimeout(10_000);return clientHttpRequestFactory;
}
4。结论
与远程系统交互时,必须具有超时属性。它们引起的任何性能问题都可能妨碍用户体验,并可能导致整个应用程序崩溃。
在生产代码中,始终选择使用HttpClient库。您可以考虑SimpleClientHttpRequestFactory仅在编写JUnit测试时使用。
请问您有关Spring Boot RestTemplate连接超时示例的问题。
学习愉快!
参考
https://howtodoinjava.com/spring-boot2/resttemplate/resttemplate-timeout-example/
https://segmentfault.com/a/1190000008351806
易筋SpringBoot 2.1 | 第三十六篇:Spring Boot RestTemplate超时配置示例相关推荐
- 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解
<深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...
- Spring Boot教程(十六):Spring Boot集成shiro
Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理.借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到 ...
- SpringBoot2.x系列教程(六十六)Spring Boot快速集成RocketMQ实战教程
前言 RocketMQ是目前主流的消息中间件之一,并且自身就支持分布式功能.最初由阿里巴巴团队开发,并且经历过双十一等海量消息场景的考验,后捐赠给Apache开源基金会,这也是为什么我们经常听说Roc ...
- SpringBoot第十六篇:用restTemplate消费服务
这篇文章主要介绍怎么用消费一个 Restful的web服务.我将用restTemplate去消费一个服务: http://gturnquist-quoters.cfapps.io/api/random ...
- 第三十六篇:WinUSB调试实例
有人问,前面的博文,分别列出了USB xHCI, USB3 HUB, UCX01000的符号有什么用? 答案是,虽然我们不能看到MICROSOFT 的源代码,但通过这些符号,可以帮助我们调试USB子系 ...
- “约见”面试官系列之常见面试题第三十六篇之CSS常见兼容性问题及解决方案(建议收藏)
CSS常见兼容性问题及解决方案: 1. 上下margin重合问题: 问题描述:相邻的margin-left和margin-right是不会重合的,但是相邻的块级元素margin-top 和margin ...
- 三十六、Java集合中的HashMap
@Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- 教妹学Java(三十六):Java 多态的好处
你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第三十六篇,今天我们来谈谈 Java 中的多态--多态有什么好处? 本专栏中的代码已收录到 G ...
- spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)
spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...
- Python编程基础:第三十六节 模块Modules
第三十六节 模块Modules 前言 实践 前言 我们目前所有的代码都写在一个文档里面.如果你的项目比较大,那么把所有功能写在一个文件里就非常不便于后期维护.为了提高我们代码的可读性,降低后期维护的成 ...
最新文章
- 中国AI专利申请量超美国,百度居国内首位
- C#的多线程机制探索4
- 数据库VIEW(视图)
- 关系管理系统:CustomerDaoimpl中获取总记录数getTotalrecord()
- 浅析“字典--NSDirctionary”理论
- 智慧“昆明”在路上 未来充满精彩
- 推荐几个Android开发非常有用的工具(for android studio)
- mail函数 开启php,PHP mail函数使用详解
- Unity3D脚本中文系列教程(十四)
- 【九天教您南方cass 9.1】 14 坐标数据的纠正
- 登陆界面万能密码绕过
- 文件 - 介绍 含PEM文件
- 陈述句c语言,幼儿语言发展中最早产生的句型是()。A.陈述句 B.疑问句C.祈使句 D.感叹句...
- macOS 控件教程(1)
- 第7章概率和样本:样本均值的分布
- Spring框架基础(中)
- 高通msm8996启动流程
- angular RxJs
- 关于在袁教授blog中的”呛袁教授“的争论
- 2021-5-21-博弈论--金刚狼与小狗灰