node.js - 在集群中运行 meteor 并实时更改

标签 node.js mongodb meteor

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

最佳答案

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

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

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

关于node.js - 在集群中运行 meteor 并实时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13201269/

相关文章:

templates - 您将如何将订阅管理器与 meteor 的模板订阅一起使用?

mysql - 联结表中的复合主键 - Sequelize

node.js - 我们可以将屏幕截图作为附件添加到 Azure 管道中的测试结果吗

javascript - 高速路由器

java - 按 Id 查询 Morphia

node.js - 如何最好地通过 meteor 来 'tail -f' mongo 中的大型集合?

node.js - 如何使用 Visual Studio 2013 安装 npm 模块蓝牙串口

mongodb - 值不为空的 Mongoose 查询

node.js - 使用 MongoDB 数据库部署 Node.js API

添加项目时 meteor 丢失滚动条