mongodb - Meteor 如何处理多个用户的同一订阅?

标签 mongodb caching meteor

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

如果您有以下发布功能:

服务器:

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

并在客户端上按如下方式订阅:

客户端:

Meteor.subscribe('articles', keyword);

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

最佳答案

Does Meteor read from MongoDB multiple times for the same subscription when it's made by multiple users?

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

关于mongodb - Meteor 如何处理多个用户的同一订阅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22591769/

相关文章:

authentication - 如何使用用户名和密码保护 MongoDB

javascript - 使用 Meteor.js 的集合平均函数

android - Android Volley 请求是否自动缓存?

caching - 中继缓存如何工作?

ruby-on-rails - Rails 3.2.4 SQL 查询正在缓存 find 上的结果(:all)

javascript - 电子邮件地址是来自 Meteor JS 中的事件监控 API 的无效响应

python - 批量计算给定数组与mongodb数据库数组之间的欧氏距离

node.js - 在heroku上部署后无法读取mongo数据库,返回503错误,但在本地可以工作

ubuntu - 使用 MUP 将 Meteor 应用程序部署到 Ubuntu EC2 实例

javascript - 如何从 javascript 获取 Meteor 的 MongoDB URL