【问题标题】:Which PaaS would be best for a Meteor JS app that needs to be scalable?哪种 PaaS 最适合需要可扩展的 Meteor JS 应用程序?
【发布时间】:2013-05-10 02:41:27
【问题描述】:

我正在尝试评估 Meteor JS 是否适合未来包含实时聊天的项目,并且可能需要可扩展。

它当然可以执行聊天功能,但我不想在流量高峰时将自己逼入角落,我们需要以无人机/测功机/实例的形式为应用程序提供更多资源。我读过 Heroku 上的 Meteor 应用程序不会轻易扩展(也许根本不会?)。我不清楚这是否是 Heroku 问题,或者更多与 Meteor JS 的当前状态有关(此时为 0.6.2.1)。我没有找到更多与 Nodejitsu 或 AppFog 相关的内容。

谁能澄清 Meteor JS 应用程序当前是否可以部署在 PaaS 上,以便可以轻松扩展资源(无人机/测功机/实例)以满足需求?如果是这样,哪个Paas?如果没有,解释是什么(对于 5 岁的孩子),是否有路线图?

【问题讨论】:

    标签: meteor paas


    【解决方案1】:

    我个人为自己设置了一个 AWS 负载均衡器和 EC2 实例,我的数据库位于 MongoHQ。

    按照以下说明,负载平衡器设置变得更加容易:

    http://www.ripariandata.com/blog/creating-an-aws-elastic-load-balancer

    我编写了一个脚本来部署到单个 EC2 实例。如果您有多个实例,添加额外的遥控器不会有太多工作:

    https://github.com/matb33/meteor-ec2-install

    【讨论】:

    • 这是一个很好的资源 - 谢谢!我必须根据@Akshat 的回答权衡我的选择,但是如果我使用 EC2(我以前从未使用过),这看起来会让我快速上手。非常感谢。
    • 经过一番修改后,我使用 EC2 将测试转移到 AWS。有很大的灵活性,我只是让我的脚湿透了——但这看起来是一个非常可靠的方法。
    【解决方案2】:

    我推荐的最好的方法是 Meteor.com 托管(通过流星部署)。

    这是因为他们会将 ddp-proxy 解决方案整合到他们的架构中。它不像只是在两个流星之间进行代理并使用发电机那么简单,因为每个用户的会话可能在另一台服务器上,并且在切换到另一个发电机时可能会造成一些麻烦。

    现在它是免费的,而且看起来他们也可以很好地扩展它。我认为他们也将很快推出更好的托管解决方案,并且谁比托管流星应用程序更好。

    如果您想在自己的基础架构(例如 EC2)上进行部署,您可以暂时垂直扩展,直到发布 DDP 代理(DDP 是流星用来在服务器和客户端之间进行通信的工具(很快也会在服务器之间进行通信) ) 以确保状态可以在多个“发电机”之间传递。

    【讨论】:

    • 您为我提供了两个非常可行的临时(可能是永久)解决方案 - 非常感谢!流星解决方案听起来很合理,但目前有点太黑箱了。我得再权衡一下这个,但我很高兴有两个可能的争论,而不是没有:)
    【解决方案3】:

    这个答案是 Heroku 特有的。

    据我了解,流星应用程序无法在 Heroku 上扩展不止一个测功机。原因是流星服务器实例为每个客户端保存一个状态。这样它就知道每次要向客户端发送什么更新。这意味着客户端每次都必须与同一台服务器通信。 Heroku 代理层不提供这种通信,并且可以将客户端请求路由到不保存客户端状态的不同测功机。

    所以现在服务器必须从数据库中获取所有客户端数据并将所有内容发送回客户端。服务器被加载并且客户端被更新。所以我们有两个测功机,我们做了两倍的工作,给客户增加了很多噪音。

    我希望它足够清楚。

    【讨论】:

    • 非常感谢 - 你确实帮助我澄清了 Heroku 的情况 - 我相信这也会对其他人有所帮助。
    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多