具有大量用户的Node.js可扩展/性能功能

时间:2014-08-07 11:54:19

标签: javascript node.js sockets socket.io

我正在创建一个node.js项目但是我关注网站启动和运行后的性能。

我预计在每周一个晚上的时间内,可能会有2000名用户激增4-5小时。

问题是每个用户可能每秒收到一次非常小的消息。即计时器调整或价格变动。 2000 * 60 =每分钟总计120000条消息。

这是否可能,如果可能的话,最小延迟是不可能的,不到1秒是非常重要的?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您当然可以使用socket.io扩展用户,但问题是您希望如何做到这一点。目前还不清楚您是否考虑过cluster模块,因为这将显着减少单个节点进程对该用户数量的负担并减少延迟时间。当然,当你这样做时,你需要停止使用socket.io默认使用的内存存储,并使用像redis这样的东西,这样你就不会有重复的身份验证握手。 Socket.io甚至有一个document来解释如何做到这一点。

您真正需要做的是通过创建2000个客户端并模拟2000个用户来测试应用程序的性能。 socket.io client可以让你在一个节点应用程序中设置它(然后可能注册EC2机器的免费层来运行它们。)

值得注意的是,我实际上没有看到v1.0基准测试,而且socket.io开发人员应该有一个专门用于基准测试的页面,因为这对开发人员来说一直是个常见问题。