Java网络编程教程之设置请求超时的方法
短信预约 -IT技能 免费直播动态提醒
一、引言
随着企业系统的发展,应用多采用分布式结构,严重依赖于网络的稳定性。但由于网络天生的不稳定性,系统开发过程中需要考虑网络不稳定情况下如何保证应用的鲁棒性。 设置网络超时是其中一种保证应用健壮性的手段。 设置网络超时设置后,请求在设定时间能未完成将被强制终止,保证程序不出现无限制的线程阻塞情况,有效的提高了应用的可用性。
下面话不多说了,来一起看看详细的介绍吧。
二、未设置超时与设置超时情况对比
1. 网络请求图例:
网络请求超时案例
2. 设置超时时间后,请求图例:
网络请求超时案例-设置超时
三、常见的网络超时设置
1. httpclient超时设置(Spring bean)
配置
<bean id="multiThreadedHttpConnectionManager" class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager"> <property name="params"> <bean class="org.apache.commons.httpclient.params.HttpConnectionManagerParams"> <property name="maxTotalConnections" value="${maxTotalConnections:300}" /> <property name="defaultMaxConnectionsPerHost" value="${defaultMaxConnectionsPerHost:300}" /> <!-- 连接超时,毫秒。 --> <property name="connectionTimeout" value="${connectTimeout:10000}" /> <!-- socket超时,毫秒。 --> <property name="soTimeout" value="${readTimeout:600000}" /> <property name="staleCheckingEnabled" value="${staleCheckingEnabled:true}" /> </bean> </property> </bean> <bean id="httpClient" class="org.apache.commons.httpclient.HttpClient"> <constructor-arg> <ref bean="multiThreadedHttpConnectionManager" /> </constructor-arg> </bean>
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
Java网络编程教程之设置请求超时的方法
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
Java网络编程教程之设置请求超时的方法
一、引言随着企业系统的发展,应用多采用分布式结构,严重依赖于网络的稳定性。但由于网络天生的不稳定性,系统开发过程中需要考虑网络不稳定情况下如何保证应用的鲁棒性。 设置网络超时是其中一种保证应用健壮性的手段。 设置网络超时设置后,请求在设定时
2023-05-30
建立云服务器网络链接的设置方法教程
1.选择云服务提供商在建立云服务器网络链接之前,首先需要选择一个可靠的云服务提供商。常见的云服务提供商包括亚马逊AWS、微软Azure和谷歌云平台等。根据你的需求和预算,选择一个适合的云服务提供商。2.创建云服务器实例在选择了云服务提供商后,你需要创建一个云服务器实例。这可以通过云服务提供商的控制台或命令行工具来完成。
2023-10-27
winXp网络的连接速度设置与双工设置方法(图解教程)
先和大家解释一aICtfpGVYF下什么是双工模式双工:信息在两点之间能够在两个方向上同时发送的工作方式。 双工的含义是可以同时进行双向传输,就如平时的在电话中通话那样。像步行对话机这样的设备是半双工或简单双工的。下面带你一起来深入学习一下
2023-05-26
Android编程判断网络是否可用及调用系统设置项的方法
本文实例讲述了Android编程判断网络是否可用及调用系统设置项的方法。分享给大家供大家参考,具体如下:private boolean checkNetwork() {boolean flag = false;ConnectivityMan
2022-06-06