远程服务器调用超时什么意思,调用远程服务的超时现象

刚刚做完一个网站项目,网站的显示数据是通过远程服务获取的,过程比较“曲折”,如下图所示。

fe3e28bafd6d37f946e822bee6af566d.png

项目使用spring mvc来开发,其中需要请求rest服务,使用spring提供的RestTemplate类可以很方便的实现rest请求发送和响应结果接收。中间系统属于老版本的系统,采用的是php开发的。在测试过程中,发现网站上的数据显示极其不稳定,时不时地提示远程数据获取失败。使用http监听工具进行了追踪,是中间系统向网站响应的结果是链接超时,导致了网站解析响应结果时没有获取到数据。将中间系统的超时阀值调大后,中间系统可以正确地响应数据,可是网站仍然无法解析数据,后来发现RestTemplate的ReadTimeout设置的值太低,导致未能接受数据。同时将RestTemplate的ReadTimeout的值调大后,一切运行正常。

这里记录、强调的重要一点使我们开发人员的主观意识错误,导致于排除错误时未能快速定位错误原因。为什么这么说呢?网站使用的是spring mvc,RestTemplate的ReadTimeout值设置的为5秒,开发人员个人觉着拿到数据为null的响应没有等到5秒啊,怎么会超时呢?同样,中间系统是php开发的,而php开发人员设置的超时时间为15秒,也是个人觉着15秒拿数据怎么也够了呀,怎么会超时呢?

让真实数据和实践来说话!http监听工具可以查看每次请求的timeline,两个系统的开发人员分别仔细观察了各自请求的时间,平均在19秒左右!

说到这里,其实最想说明是,不要被我们自己的主观意识蒙蔽了双眼。为什么会出现上述的现象?在项目开发后期,特别是时间吃紧的状况下,开发人员在调试诸多问题的过程中,很容易地就想当然了,忽略了解决问题的本质。只有通过对真实数据的分析及实践操作,才能准确快速地找到问题原因!

所以,在任何情况下,一定要养成冷静思考的好习惯,一定要充分利用调试工具的功能,千万不要自己觉着!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值