【问题标题】:Two meteor instances connected to one database - delay issue两个流星实例连接到一个数据库 - 延迟问题
【发布时间】:2014-12-13 04:57:18
【问题描述】:

我有应用程序的两个主要部分。在 domain.com 上工作的主要部分和在 admin.domain.com 上工作的另一个部分。两者都连接到一个数据库,因为我需要为它们提供相同的数据。

domain.com - localhost:3001 和 admin.domain.com - localhost:3002 。前面的 Nginx 用于反向代理。

一切正常,但是当 admin.domain.com 应用程序更改数据时,我在 domain.com 上更新此数据时出现了很大延迟

据我了解,我需要启用 mongo oplog?那正确吗?以及如何做到这一点?

upd:当两个用户连接到一个流星实例时,我也没有这么长时间的延迟,在这种情况下,流星反应工作正常,并且两个用户的数据更新非常快。我的意思是,问题在于流星轮询数据库有关任何更改的频率。

【问题讨论】:

    标签: node.js mongodb nginx meteor


    【解决方案1】:

    发生这种情况是因为 Meteor 每 10 秒拉一次数据库,而使用 OPLOG 这几乎是即时的。即使使用 OPLOG,您也可能会遇到更新缓慢的问题,因为您在某些情况下(例如聚合)依赖于 Mongoldb cpu。

    如果您使用将 URL 传递给 Mongodb OOLOG 服务器:

    export MONGO_OPLOG_URL=mongodb://localhost:$MONGO_PORT/local

    【讨论】:

    • 这就是开启 oplog 所需的全部内容吗?我是否需要重新加载 mongo 或 meteor 实例?
    • 是的,你需要设置这个有一个环境变量并且Meteor会使用oplog。所以你必须重启你的服务器。
    【解决方案2】:

    查看这篇关于设置oplog tailing and Meteor 的帖子。我想它会回答你的问题。它不会减少往返客户端 -> 服务器和服务器 -> 客户端的时间,但我不怀疑这是你的延迟所在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多