12

我计划将 Meteor 部署到我的 Amazon AWS EC2 服务器,但我还想同时运行多个服务器实例来服务更多客户。在 Meteor 中是否有适当的方法来执行此操作,而不会破坏客户更新其收藏品更新的能力?

4

2 回答 2

18

运行多个 Meteor 服务器进程时需要考虑两个主要问题。

  1. 客户端会话亲和性。 客户端使用 SockJS 库连接回 Meteor 服务器,通常使用长轮询策略,每隔一段时间重新连接到服务器。服务器进程保存与每个客户端相关的状态。所以重要的是给定客户端的连接不要在服务器之间反弹,否则服务器会认为它正在与新客户端通信并重新发送所有订阅状态。

  2. 协调数据库失效。 每当客户端发出数据库写入时,服务器进程都会运行重新计算并将更新推送到任何其他受影响的客户端。但是连接到不同服务器的客户端在该服务器进程运行 10 秒 Mongo 轮询循环之前不会看到更改。对于某些应用程序,可以让大多数客户端滞后 10 秒。如果您的应用程序需要更实时的东西,那么您必须在 Meteor 服务器进程之间实现自己的进程间通信。

于 2012-12-05T04:00:43.990 回答
6

伙计们,这是你应该看的

流星集群 - https://github.com/arunoda/meteor-cluster

我也在这里写了一篇博客:http: //goo.gl/2aHJ2

于 2013-05-14T01:10:59.490 回答