我们想要进入推送技术,我们的用例如下:
现在我们有两个相互竞争的解决方案:
我们可以构建一个真正的websocket / longpolling服务器集群(我们将在node或vert.x上评估氛围,playframework和socket.io);这将导致几个100.000套接字同时处于活动状态,几乎所有套接字都闲置(除了25%的IE不断重新建立长轮询连接);
我们可以使用缓存webservers(invalidatable)后面的静态json文件作为经典轮询的端点;这将导致浏览器产生几百个100,000次请求/秒,几乎所有这些请求的结果代码都是304。
你会提出哪种解决方案?特别是在资源消耗方面:cpu,内存,流量,io?
答案 0 :(得分:0)
我们使用了一种非常简单的方法:
浏览器会定期将ajax轮询到静态文件,该文件通过akamai分发。所以我们很少有请求真正打到我们的后端。 文件的缓存时间设置为5秒,轮询间隔也是如此。
它不优雅,不实时,但它适用于我们的用例。