Meteor:直接数据库插入的延迟(使用外部MongoDB)

时间:2014-12-01 12:14:17

标签: meteor

我有一个C应用程序,可以直接将数据插入到Meteor应用程序的数据库中。当我在开发模式(使用“meteor”)运行它时,该应用程序正常工作(延迟)。但是,如果我将应用程序作为节点应用程序(捆绑)和外部MongoDB运行,则屏幕更新(5-10秒)会出现令人讨厌的延迟。

我之前已经注意到有关此事的一些讨论:

问题:

  1. 除了通过Meteor构建服务器端API以进行数据库插入之外,还有其他方法吗?
  2. 为什么延迟仅在使用外部MongoDB时?
  3. Meteor中是否有办法缩短此数据库轮询间隔?

1 个答案:

答案 0 :(得分:2)

您需要启用 oplog tailing 。如果没有oplog拖尾,当你的C程序写入数据库时​​,Meteor服务器在重新轮询MongoDB之前没有意识到任何变化。通过oplog拖尾,它可以更加快速有效地获取更改。在开发模式下,oplog尾部会自动启用,但对于生产,它需要一些额外的设置。

  1. 您的MongoDB必须设置为副本集(一个节点的副本集确实有效)。
  2. 您必须使用环境变量local传递副本集的MONGO_OPLOG_URL数据库的mongo URL。
  3. 有关详细信息,请参阅this article