0

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

  • 大量的同时客户端(数 100.000)
  • 消息率低(每分钟约 1 条)
  • 小数据(<500 字节/消息)
  • 延迟低于 2 秒

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

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

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

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

4

1 回答 1

0

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

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

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

于 2013-06-05T21:10:35.253 回答