如何实现低频率低消息浏览器推送

时间:2013-06-03 05:58:04

标签: websocket long-polling ajax-polling

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

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

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

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

  2. 我们可以使用缓存webservers(invalidatable)后面的静态json文件作为经典轮询的端点;这将导致浏览器产生几百个100,000次请求/秒,几乎所有这些请求的结果代码都是304。

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

1 个答案:

答案 0 :(得分:0)

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

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

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