Meteor 的 DDP 协议非常适合将少量数据从服务器同步到基于浏览器的客户端,这从本质上限制了处理的数据量。
但是,考虑使用 Meteor 将大型集合从一台服务器同步到另一台服务器的情况,或者仅使用 DDP 协议本身将一个 MongoDB 与另一个同步。
在这种情况下(计算上)DDP 的效率如何?它对多个客户的扩展性如何?性能的限制仅仅是带宽还是 DDP 也会受到 CPU 的限制?目前可以通过 DDP 合理同步的最大数据量是多少?DDP 是否只是这样做的错误方法(请参阅下面的参考资料)?
一些额外的想法:
- 据我所知,当前版本的 DDP 跟踪每个客户端的整个集合,因此它不能渐近非常有效。
- 创建智能集合是为了提高服务器到客户端的同步集合的性能。但我不清楚这是否在改善 DDP 或其他方面。
也可以看看:
编辑:
在对此进行了一些经验经验之后,我不得不得出结论,答案“不是很有效”。有关说明,请参阅https://stackoverflow.com/a/21835534/586086。
与 Meteor 开发人员的讨论表明,这个问题将在未来通过 DDP 和发布-订阅 API 的修订来解决,其中合并框将被删除,客户端将处理合并。这将节省服务器上的 CPU/内存,并允许通过网络发送更大的数据集。