Web服务客户端延迟高,通过ssh隧道更快



我已经用Apache CXF开发了一个java Web服务应用程序,但当我通过网络调用WS时,WS的延迟很高。基本上这是执行时间:

  • 本地(127.0.0.1/本地地址)呼叫:4ms
  • 局域网呼叫:200ms

但是,如果我创建到另一台机器的SSH连接,则使用该连接构建本地隧道:

remote_ip:110000->local:11000

然后我把客户端连接到本地:11000只需要40毫秒。。。有什么想法吗?

提前感谢

更新

我在ws方法调用中有一个跟踪,它实际上是一个围绕调用的Java代理。有了这个轨迹,我得到了4ms/200ms/40ms的时间。

最初我们认为这可能是网络问题,但我们尝试了相同的调用,将所有机器连接到一个交换机,结果相同。创建隧道时,我们使用Putty(没有特殊选项)

您的本地网络是否使用透明代理来过滤流量?在内置网络条件下,我希望SSH调谐实际上会增加延迟,而不是减少延迟

此外,您如何测量延迟?也许您正在使用SSH压缩并测量api响应的传输时间?

更新:如果客户端和服务器在同一个交换机上时得到同样缓慢的结果,那么这些主机上的网络层听起来有些奇怪。例如,有一个数据包检查防火墙/病毒扫描仪,它可以拦截所有TCP流量。当通过SSH进行隧道传输时,这当然不会触发,因为现在这个连接在客户端机器上看起来是localhost:localhost。

最新更新