与 socket.io 相关的可扩展性问题
Posted
技术标签:
【中文标题】与 socket.io 相关的可扩展性问题【英文标题】:scalability issues relating to socket.io 【发布时间】:2012-03-29 11:55:14 【问题描述】:在 socket.io 的主页上,它没有说明任何与可扩展性问题相关的内容。有谁知道它一次可以处理多少个并发连接?我想在我的项目中部署 socket.io 以进行大规模彗星处理。例如,它指出 nodejs 可以轻松处理多达 100K 的并发连接。 socket.io 是否能够一次处理尽可能多的请求?
【问题讨论】:
【参考方案1】:有许多变量会影响性能并定义 socket.io 的限制。
可能最重要的是您的硬件,尤其是 RAM。普通并发和消息处理之间也有区别。消息处理似乎比并发更消耗 CPU。
我推荐this article,作者是 Mikito Takada。摘录:
节点 (0.4.12) 在单核上使用 tcp ~ 8000 个连接
socket.io 0.6.17 使用 websockets ~ 2300 个单核连接
socket.io 0.7.11 使用 websockets ~ 1800 个单核连接
socket.io 0.8.6 使用 websockets ~ 1900 个单核连接
所以,为了回答你的问题,我想说的是,你不能指望 socket.io 能够处理与 node.js 在相同设置下所能处理的并发级别。
有关 socket.io 性能的更多信息,请阅读 Drew Harry 的 this。
【讨论】:
以上是关于与 socket.io 相关的可扩展性问题的主要内容,如果未能解决你的问题,请参考以下文章