【问题标题】:Is it expensive to open a http connection in intranet?在 Intranet 中打开 http 连接是否昂贵?
【发布时间】:2014-01-24 10:36:09
【问题描述】:

一台服务器将使用http客户端从另一台运行着http服务器的服务器上传一些数据。

我们有两种选择:

  1. 打开一个持久连接,按住它,如果需要,尝试上传不同的文件
  2. 打开一个非持久连接,一次上传一个文件。下次获取新连接。

如果服务器都在同一个内网,并且网络良好。如果选择选项 2,每次创建新连接是否昂贵?


我忘了说:我们正在使用https 连接

【问题讨论】:

  • HTTP 1.1 持久连接在定义上比非持久连接具有更少的开销。然而,我认为在本地网络中,这种开销几乎可以忽略不计。如果你真的想使用最快的协议,为什么不试试 SPDY 呢?
  • 如果您使用的是 SSL/TLS,那么我会认为建立连接的成本相对较高。否则,假设网络良好,您可以放心地忽略这种性能风险。

标签: java sockets http


【解决方案1】:

这是一个权衡,如果您认为带宽将是您传输的主要问题,那么选择选项 2 是正确的做法。虽然这在服务器处理方面会有点贵,因为每个用户会有多个会话,而且它会随着用户数量的增加而增加。服务器作业将很短并且会很快结束,因此挨饿的时间会非常少。可以同时处理的用户数量也会增加,因为连接很短。但是有一个缺点,如果这些文件有一个序列,您将不得不在服务器端维护它。 另一方面,如果您选择选项 1。服务器端的管理在处理方面变得容易得多。它也会消耗更多的带宽。由于存在持久连接,因此可以处理上传的用户数量会少得多。

【讨论】:

    【解决方案2】:

    这取决于建立连接的频率。尽管考虑到内部网空间中客户端数量较少,使用 SSL/TLS 会增加一些开销,但拥有较少拥塞的网络将在这两种情况下实现流畅的性能。但是,如果您以频繁的方式进行事务,那么在这种情况下,我宁愿使用持久连接来减少新的连接开销。

    另一方面,如果我们从大量连接中获取大量事务的能力较低的服务器,那么建立持久连接可能会导致网络拥塞,并且肯定会对服务器进行测试。因此,我们必须在考虑各种因素的情况下做出选择。

    【讨论】:

      【解决方案3】:

      选项 2。延迟是建立 TCP 连接时要考虑的最大因素之一。因为您在专用网络中,所以创建新的非 SSL 连接的成本是微不足道的。

      【讨论】:

      • 这是不正确的。如果您想最大限度地减少延迟,那么您应该尽可能重用连接,尤其是通过 SSL。建立和拆除连接的成本是不可忽略的。还有许多其他因素会影响延迟,您应该运行性能测试来验证您的瓶颈在哪里,但是笼统地声称创建新连接的成本微不足道是完全错误的。即使在专用网络上建立连接也需要多次往返才能完成握手,这可能会增加数十毫秒(或更多)的通话延迟。
      • @CameronSkinner 谢谢!我的意思是成本对于本地网络上的非 SSL 连接来说微不足道。更新了解决此问题的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 2012-12-24
      相关资源
      最近更新 更多