【问题标题】:How to run meteor application on two or more Heroku dynos?如何在两个或多个 Heroku 测功机上运行流星应用程序?
【发布时间】:2013-01-19 18:03:46
【问题描述】:

我有 Meteor 应用程序,它使用 1 个测功机在 Heroku 平台上运行。当我增加 dynos 的数量时,它会停止工作,并在客户端报告 XHR(错误 404)的一些问题。

有人在两个或更多 Heroku dynos 上成功运行 Meteor 应用程序吗?如果是这样,我应该怎么做才能让它工作?

【问题讨论】:

    标签: heroku scalability meteor


    【解决方案1】:

    不,不幸的是 Meteor 不能在 Heroku 上使用多个 dyno。 Meteor 需要会话亲和性,而 Heroku 目前不提供。

    Meteor 需要会话亲和性:Running meteor in a cluster and real-time changes

    Heroku 不支持会话亲和性:https://devcenter.heroku.com/articles/intro-for-java-developers

    【讨论】:

    【解决方案2】:

    如果您想要一个支持 Meteor 并且可以使用会话亲和性扩展到多个 dyno 的 SaaS 托管服务提供商,现在有一个看起来很有前途的 CloudBees buildpack:

    https://github.com/CloudBees-community/meteor-clickstart

    【讨论】:

      【解决方案3】:

      Heroku 现在支持会话亲和性,这允许它与 Meteor 一起使用。在撰写本文时它还在实验室中,因此您必须启用它。

      https://devcenter.heroku.com/articles/session-affinity

      【讨论】:

        【解决方案4】:

        嗯,会话亲和性(或类似的东西)似乎至少在路线图中。因此,开发人员希望在发布 1.0 版时解决该问题。

        https://trello.com/board/meteor-roadmap/508721606e02bb9d570016ae

        【讨论】:

        • 实际上,Meteor 路线图上的内容是能够运行多个 Meteor 服务器实例,而数据更改从一台服务器传播到另一台服务器时不会有 10 秒的延迟(目前服务器之间的唯一通信是通过数据库,每十秒轮询一次)。即使使用 Meteor 1.0,托管环境仍然需要能够为 Meteor 提供客户端会话亲和性,以便与多个服务器实例一起工作。
        • 因此,问题似乎可以转换为托管服务提供商(在本例中为 Heroku)是否具有支持 cookie 中的粘性会话和 sessionid 的负载平衡器。在对该主题进行了更多研究之后,似乎一旦到位,就可以使用 Meteor 实现 socksjs,是吗?
        猜你喜欢
        • 1970-01-01
        • 2016-03-25
        • 2019-08-23
        • 2014-09-07
        • 1970-01-01
        • 1970-01-01
        • 2016-04-23
        • 1970-01-01
        • 2012-11-27
        相关资源
        最近更新 更多