假设您的应用程序被足够多的用户击中以停止运行,它会启动另一个实例吗?你打算在未来如何解决这个问题?
伊恩
不确定您是指使用“meteor bundle”构建的应用程序还是使用“meteor deploy”在免费主机上部署的应用程序。
使用“meteor deploy”部署到托管服务器的应用程序还没有任何关于扩展的保证或 SLA。但是,服务器可以处理相当多的负载。meteor.com 托管在meteor deploy 上,它在 Meteor 发布后幸存下来。
使用“meteor bundle”生成的服务器包基本上是一个单进程应用程序。这取决于您将其连接到多个实例,或者您想要实现自动缩放。
我对你的问题不太清楚。不是询问流星框架的可伸缩性或流星应用程序托管环境的可伸缩性。没关系,就这样吧
随着 Meteor 框架生态系统的发展,您的可扩展性问题将得到解答,目前您可以通过 Packages 调用尽可能多的小代码模块。
Meteormeteor bundle
需要更多的东西,最终让您可以在全球任何地方部署您的应用程序,然后您可以拥有自己的基础设施设置来运行您的应用程序(类似于网络负载均衡器托管 NodeJS 服务器和可扩展的多个 MongoDB 实例)
一般来说,Meteor 可以通过捆绑和使用您自己的基础设施(如 mongo、应用程序服务器)来扩展使用。就像@n1mmy 所说,当应用程序被捆绑时,您可以指定一个特定的 mongo 端点,您可以从该端点扩展数据存储。此外,当 bundle 运行时,它实际上是在 nodejs 上运行的,这意味着您可以像 nodejs 应用程序一样扩展您的 Web 应用程序。如果您的应用程序有太多用户,我认为这两种方式都可以缓解您的问题。
理论上 Meteor 的缩放比例很好,但在实践中它是否真的适合你,这一切都取决于你如何处理数据。这是一篇关于 Meteor 可扩展性的优秀文章: https ://www.discovermeteor.com/blog/scaling-meteor-the-challenges-of-realtime-apps/