在群集中运行流星并实时更改

时间:2012-11-02 18:47:08

标签: node.js mongodb meteor

我计划将Meteor部署到我的Amazon AWS EC2服务器,但我还希望同时运行多个服务器实例以服务更多客户端。是否有正确的方法在Meteor中执行此操作而不会破坏客户端更新其集合更新的能力?

2 个答案:

答案 0 :(得分:18)

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

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

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

答案 1 :(得分:6)

这是你应该看的人

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

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