我们有一个客户每分钟向我们发送数千个 Web 服务请求,而我们看到的所有他们请求的具体情况是 HTTP 正文通过网络传输,然后是150-250 毫秒的暂停,然后发送 SOAP 主体。
由于 header 知道请求的大小,我可以排除这种延迟是由生成请求本身所需的处理造成的。
根据用户代理,我可以确定他们使用的是 Java 1.5 和 HttpsUrlConnection。我无法访问他们的代码(但),但我想知道人们是否已经看到这种行为,或者代码编写得不好?
我这边:一组 Apache 网络服务器,前端带有负载平衡器、防火墙……这些网络服务接收请求并使用 mod_proxy 将它们发送回 Tomcat 应用程序服务器。
(同样,这种行为只出现在这个客户身上,所以我怀疑是我这边的原因造成的...)
最佳答案
最终成为我客户边缘的路由器完全饱和/过载,增加了 400 毫秒以上的延迟。所以看起来无法足够快地发送完整请求。我们已经重现了同样的行为,使用 tcpproxy 添加了 400 毫秒的延迟。
有时这是最明显的解释,我猜...
关于java - HttpUrlConnection - 奇怪的延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21758509/