扩展Heroku上的Meteor应用程序

时间:2012-06-08 21:11:05

标签: heroku meteor

在对另一个question的回答中,注意到“使用'meteor deploy'部署到托管服务器的应用程序还没有任何关于扩展的保证或SLA。”因此,如果我想确保我现在可以完全扩展,那就排除了使用托管服务器的可能性。

答案进一步指出“使用'meteor bundle'生成的服务器捆绑包基本上是一个流程应用程序。您需要将其连接到多个实例,或者您希望实现自动缩放。”

阅读完之后,我仍然不清楚缩放问题。在Heroku上,我假设我可以在dynos中运行“meteor bundle”单进程应用程序。但是,如果我使用许多dynos,每个运行Meteor服务器捆绑,是Meteor的设计,以便它们可以连接起来,以便它们都与相同的数据同步(即使有滞后)?

4 个答案:

答案 0 :(得分:5)

回答我自己的问题,Meteor团队宣布了roadmap,其中包括可扩展性计划,以包含在Meteor 1.0中。

答案 1 :(得分:2)

流星仍然是非常年轻的平台。在可扩展性之前,我个人会提出安全问题,因为Meteor现在在公开发布中没有安全模型。也没有提到Meteor docs中的安全性,但是Meteor团队已经确认他们正在研究它,未来的发布将会有它。看看这里:https://stackoverflow.com/questions/10100813/when-can-we-expect-data-validation-and-security-in-meteor

所以我认为你和我(为了安全实现)必须等待更多版本,并且可能在内部处理1.0可伸缩性之前,或者他们应该有文档解释如何做到这一点。

为了了解一下,如何处理可扩展性以及如何更好地了解它,我认为来自meteor团队的人应该回答有关可伸缩性的问题。

答案 2 :(得分:1)

您可以将流星应用程序部署到Heroku中,但您需要坚持使用1 dyno。因为Heroku不支持WebSockets或Sticky Sessions。

所以你需要找到另一个PAAS提供者。 Nodejitsu是一个不错的选择。如果你不想扩展到多个实例,你需要找到一种在实例之间同步写操作的方法。

然后您需要Meteor Cluster - http://goo.gl/2aHJ2

答案 3 :(得分:0)

我最近问了一个类似的问题(Which PaaS would be best for a Meteor JS app that needs to be scalable?),其中一个答案很好地解释了Heroku的情况(我想) - 见https://stackoverflow.com/a/16468418/2311632。还指出(https://stackoverflow.com/a/16468609/2311632)可以部署在meteor.com上。虽然扩展仍然在路线图上,但可能他们已经或正在解决一些“内部”扩展问题,或者可以将其服务保持在扩展Meteor应用程序的最前沿。否则,您可以使用EC2并垂直缩放(增强单个实例的功能),直到Meteor使用官方缩放解决方案达到标记。使用EC2进行设置对我来说是新的,但这个答案(https://stackoverflow.com/a/16468826/2311632)看起来是一个很好的起点。我还没有尝试过,但可能很快就会尝试。