【干货篇】调用其他系统http接口超时了,如何处理,方案汇总
2015-12-24 11:33
549 查看
如果你参加过互联网项目,那么你一定知道,整个大的系统会被切成许多的子系统。子系统与子系统通过接口交互。其中,通过http接口交互,是非常常用的一种方式。那么如果调用某个子系统的http接口超时了,该如何处理呢?下面列举一下。
备注:如果对方系统挂掉了,使用待处理队列的方式,比较合适。
备注:宁愿没有数据,也不要存储脏数据。
增加超时时间
假设A系统有个方法methodA,会调用B系统的methodB这个http接口,如果mehodA不追求超快的响应速度,那么你在调用methodB这个http接口时,可以增长超时时间,例如10秒超时。因为经常在某些时刻,由于网络原因或者系统原因,调用method会超时的。尝试多调用一次
如果第一次调用methodB超时了,那么你可以尝试多调用一次。当然前提是,methodA不追求超快的响应时间。使用待处理队列
如果methodA需要很快的响应速度,那么当调用methodB接口超时时,可以使用一个队列存储本次失败的记录,然后使用一个job每隔一段时间去扫这个队列,看看是否有待处理的数据。备注:如果对方系统挂掉了,使用待处理队列的方式,比较合适。
回滚数据
catch这个超时异常,然后记录日志后,抛出这个异常,并把之前的数据回滚。让对方的系统重新调用。备注:宁愿没有数据,也不要存储脏数据。
使用异步机制
如果你的业务方法中,需要调用对方的http接口,如果这个http接口不影响主流程的,那么可以使用一个线程,异步调用对方的http接口,并把超时时间设置长一些。由于使用了异步,主流程会立刻继续走的。相关文章推荐
- httplib下载http链接的DOC文档
- linux socket编程之TCP与UDP
- HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException:
- Linux下以C构建WEB服务并响应XHR(XMLHttpRequest)请求
- 《TCP/IP详解 卷1:协议》 读书笔记 第十九章 TCP的交互数据流
- HTTP POST GET SOAP本质区别详解
- cURL进行HTTPS连接POST数据
- ios 网络请求后 Crash
- 网络通信常用加密算法研究
- 网络资源访问控制(iptables)和常用策略的介绍
- BP 神经网络 反向传播算法
- linux 虚拟机网络设置
- 网络安全之IP伪造
- http request 获取复杂json数据时出现异常解决额
- java网络---查找Internet
- HTTP 协议之压缩
- (转载)loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写
- ionic如何检测网络连接
- 分布式网络管理优点总结
- 点对点网络大解析