【问题标题】:how to implement a low frequency low message rate browser push如何实现低频低消息率浏览器推送
【发布时间】:2013-06-03 05:58:03
【问题描述】:

我们想进入推送技术,我们的用例如下:

  • 同时存在大量客户端(数个 100.000)
  • 消息速率低(每分钟约 1 条)
  • 小数据(
  • 延迟不到 2 秒

现在我们有两个相互竞争的解决方案:

  1. 我们可以建立一个真正的 websocket/longpolling 服务器集群(我们将在 node 或 vert.x 上评估气氛、playframework 和 socket.io);这将导致几个 100.000 个套接字同时处于活动状态,几乎所有套接字都处于空闲状态(除了 25% 的 IE 不断重新建立长轮询连接);

  2. 我们可以只使用缓存网络服务器(无效)后面的静态 json 文件作为经典轮询的端点;这将导致来自浏览器的每秒 100.000 次请求,几乎所有请求都以 304 的结果代码得到响应。

您会提出哪种解决方案?尤其是资源消耗方面:cpu、内存、流量、io?

【问题讨论】:

  • 不能说哪个在资源方面更好,但我会选择第一个。我已经意识到使用 Vert.x (1.3.1) 的第一个解决方案,并且我们的压力测试结果非常好(在我说服我的公司删除 apache 作为 vert.x 的代理之后)。抱歉 8 个多月前做的,没有投入生产,所以我不能提供数字——给 vert.x 一个机会。 HTH

标签: websocket long-polling ajax-polling


【解决方案1】:

我们为此使用了一种非常简单的方法:

浏览器定期对静态文件进行 ajax 轮询,该文件通过 akamai 分发。所以我们很少有请求真正打到我们的后端。 文件的缓存时间设置为 5 秒,轮询间隔也是如此。

它并不优雅,它不是实时的,但它适用于我们的用例。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2018-06-21
    • 2017-07-23
    相关资源
    最近更新 更多