Meteor.js中构建的Web应用程序可以处理多少并发用户?

fra*_*sco 44 javascript scalability meteor

我们正在构建一个网络应用程序,将在比赛期间用于投票选手并在中央显示器上显示实时投票统计数据.

比赛将持续15分钟,大约4000名用户将在这段时间内连接到网络应用程序并发送投票,但每个用户设备都是唯一的.

我们正在考虑使用Meteor.js开发这样的Web应用程序.但是,由于我们在为大量并发用户和Meteor.js的beta状态开发服务方面经验不足,我们对该项目的实际可行性存在一些担忧.

以下是我们要解决的问题:

  1. 有关Meteor可以处理多少并发用户的基准吗?我认为这取决于Web应用程序本身的复杂性.在我们的例子中,它将是相当直接的,只有用于中央显示器的客户端将订阅实时Mongo查询votes.find({}),其余用户将只看到vote/ already voted按钮.

从真实案例或测试场景中获取一些数据对我们有很大帮助.

  1. Meteor的基础设施能够处理4000个用户吗?或者我们应该去寻找这个已删除问题中列出的其他托管解决方案(您需要10k + rep才能看到它)?

  2. 是否有任何特定于Meteor.js的性能考虑因素我们应该注意什么?

我们已经看过类似的帖子,但是他们都没有在如此短的时间内处理如此大量的用户:

此外,我们可以使用Cluster智能包.有人有这方面的经验吗?

Dan*_*scu 38

UPDATE ClassCraft报告一个Meteor服务器处理6400个并发用户.阅读我的Why Meteor文章Scalability部分中的更多内容.

另请参阅论坛帖子
有多少同时用户支持最大的当前流星应用程序?


这里的基准不完全是关于并发用户,而是关于设置订阅(可以说是一个更有压力的测试).

Arunoda最近公布了一项测试结果(使用类似于@ alanning的流星meteor-down载荷测试的负载测试工具)和一个Meteor负载平衡工具Cluster.

测试是在最便宜的Digital Ocean服务器上运行的(512MB RAM,每月5美元),结果令人印象深刻:

在此输入图像描述

对于上述所有方案,服务器响应时间小于8毫秒.

基本上一台商品机每分钟可以处理2500个Meteor订阅,并在8毫秒内响应.水平扩展需要不到5%的开销.

您可以在Meteor Cluster Performance Test中了解有关测试的更多信息:令人印象深刻的结果.


小智 11

https://github.com/alanning/meteor-load-test

如果您快速模拟应用程序,那么在15分钟内设置4000个连接的测试应该相当简单.我没有亲自使用它,但计划在我完成我自己的应用程序之后这样做.


rob*_*cox 4

我认为诚实的答案是,每种情况都是不同的,并且人们无法为您提供关于系统在不同负载下如何执行的硬性规则。

最好的选择是实际构建一个具有一两个功能的简单系统原型,然后使用多个并发用户运行一些性能测试以确定限制是什么。这将为您提供一个良好的基础,以便您可以迭代原型并确定是否/如何支持所需的用户数量。