【问题标题】:Web sockets use a lot of resources like comet long polling?Web 套接字使用大量资源,例如彗星长轮询?
【发布时间】:2011-03-27 02:10:43
【问题描述】:

我知道 Comet 长轮询对 Web 服务器不利,因为它们每个连接占用一个线程。所以你不能让很多用户有持久连接,否则你的网络服务器会崩溃。

这与 HTML 5 中的 Web 套接字相同吗?

如果每个持久连接占用一个线程,如何解决资源问题?

【问题讨论】:

    标签: http comet websocket


    【解决方案1】:

    Spender 是正确的,只有糟糕的 Web 服务器(例如带有 mpm_worker 或 mpm_prefork 的 Apache)每个连接使用一个线程/进程。

    智能 Comet 或 Websockets 网关(我不久前写过这样一个)将具有事件驱动架构 - 基于 Proactor(具有固定线程池)或 Reactor(单线程)模式。长轮询应该在保持活动的 HTTP 连接上完成(对于支持该连接的浏览器 - 大约 99% 的连接),在这种情况下,它将具有与 Websocket 相似的性能/可扩展性特征。

    【讨论】:

    【解决方案2】:

    ...因为它们每个连接占用一个线程

    这个假设是完全不正确的。有关更多信息,请参阅我给 here 的答案。 (例如)完全可以在 IIS 中使用IAsyncHttpHandler 来执行长轮询,而无需为每个客户端使用一个线程。

    【讨论】:

      猜你喜欢
      • 2011-07-27
      • 2014-01-11
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-15
      • 2011-11-16
      相关资源
      最近更新 更多