2013-08-05 88 views
0

我想用socket.io(node.js框架)每3秒向大量用户广播一个1Kb消息。什么是最好的方式来扩展它(1用户= 1'听众'与socket.on('periodicMessage',回调))?缩放socket.io广播

没有其他的CPU使用情况(一次读取外部数据库,每3秒钟由其他外部模块读取),所以我想知道一个简单的heroku服务器是否可以将消息广播到10000,100 000,100万或更多的用户。

+0

SocketCluster与Socket.io具有类似的接口,并作为多个并行工作负载(基于事件名称哈希)高效共享负载:https://github.com/topcloud/socketcluster – Jon

回答

1

我们可以在单个node.js过程中轻松扩展到数以万计的“听众”。由于每个套接字都是一个文件描述符,我不确定有多少实际上可以扩展到,并且普通的vanilla内核可以为每个进程提供65K fd,不再有更多。

CPU不会成为问题。如果上传的带宽是(1KB * 50K users/3 sec = 50M/3sec = 16MB/s upstream),我从来没有测量过Heroku,所以不知道他们是否支持这个,我想他们会这么做,但也许他们会限制你,因为他们正在为此支付亚马逊,毕竟)。