我们想进入推送技术,我们的用例如下:
- 大量的同时客户端(数 100.000)
- 消息率低(每分钟约 1 条)
- 小数据(<500 字节/消息)
- 延迟低于 2 秒
现在我们有两个相互竞争的解决方案:
我们可以建立一个真正的 websocket/longpolling 服务器集群(我们将在 node 或 vert.x 上评估气氛、playframework 和 socket.io);这将导致几个 100.000 个套接字同时处于活动状态,几乎所有套接字都处于空闲状态(除了 25% 的 IE 不断重新建立长轮询连接);
我们可以只使用缓存网络服务器(无效)后面的静态 json 文件作为经典轮询的端点;这将导致来自浏览器的每秒 100.000 个请求,几乎所有请求都以 304 的结果代码回答。
您会提出哪种解决方案?特别是在资源消耗方面:cpu、内存、流量、io?