【问题标题】:Webservice client high latency, faster through ssh tunnelWebservice客户端高延迟,通过ssh隧道更快
【发布时间】:2015-09-09 00:41:27
【问题描述】:

我已经使用 Apache CXF 开发了一个 java webservice 应用程序,但是当我通过网络调用它们时,我遇到了 WS 的高延迟。基本上这是执行时间:

  • 本地(127.0.0.1/本地地址)调用:4ms
  • 局域网通话:200ms

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

remote_ip:110000->local:11000

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

提前致谢

更新

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

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

【问题讨论】:

    标签: java web-services latency ssh-tunnel


    【解决方案1】:

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

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

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

    【讨论】:

    • 我同意这种观点。我希望 ssh 增加延迟而不是反之亦然...您能否确保在制作时没有“篡改”或额外处理(代理等)呼叫局域网地址?请向您的网络团队/部门进行一些澄清,并在您方面对另一个地址进行跟踪,看看如果响应时间出现任何异常情况会产生什么结果。
    • 我在 ws 方法调用中有一个跟踪,它实际上是调用周围的 Java 代理。通过该跟踪,我得到了 4ms/200ms/40ms 的时间。最初我们认为这可能是网络问题,但我们尝试了相同的调用,将所有机器连接到单个交换机,结果相同
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 2020-01-28
    • 1970-01-01
    • 2016-07-21
    • 2021-01-23
    • 2016-09-09
    • 2014-09-03
    • 2013-05-26
    相关资源
    最近更新 更多