【问题标题】:How does Meteor handle the same subscription from multiple users?Meteor 如何处理来自多个用户的相同订阅?
【发布时间】:2014-04-30 18:27:10
【问题描述】:

当多个用户创建同一订阅时,Meteor 是否会多次从 MongoDB 读取?为了说明,这里有一个例子:

如果你有以下发布功能:

服务器:

Meteor.publish('articles',function(keyword){
   return Articles.find({keyword:keyword});
});

并且在您订阅的客户端上如下:

客户:

Meteor.subscribe('articles', keyword);

当第一个用户订阅时(使用关键字:“meteor”),需要从 MongoDB 中读取数据。然后第二个用户使用相同的关键字订阅相同的发布功能。 Meteor 是再次去 MongoDB 为第二个用户获取相同的数据,还是缓存在某个地方并从缓存中提供服务?是否可以从缓存中提供它并在检测到更改时让流星更新缓存?

【问题讨论】:

    标签: mongodb caching meteor


    【解决方案1】:

    当多个用户创建同一订阅时,Meteor 是否会多次从 MongoDB 读取数据?

    不,它使用查询重复数据删除。如果多个客户端订阅同一个数据集,则只使用一个观察者,它们共享结果集的缓存。这对于 poll-and-diff 观察者和 oplog-tailing 观察者都是如此。我建议观看所有 this video,David Glasser 解释了这些算法如何在高层次上工作。您的具体问题会在大约 14 分钟后得到解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多