根据这个答案,看起来流星服务器为每个连接的客户端保留了缓存的内存副本。我的理解是,它被用来避免在处理客户端上的重叠订阅时发送多个数据副本。
链接答案的相关部分(重点是我的):
合并框:合并框的工作是将所有客户端的活动发布功能的结果(添加、更改和删除的调用)合并到单个数据流中。每个连接的客户端都有一个合并框。它拥有客户端 minimongo 缓存的完整副本。
假设在当前版本的流星中答案仍然准确,随着用户数量的增加,这不会在服务器上造成巨大的内存浪费吗?
作为一个现成的计算,如果一个应用程序的每个客户端有大约 100kB 的缓存,那么 10,000 个并发用户将使用服务器上 1GB 的内存,而 100,000 个用户将使用高达 10GB 的内存!即使每个客户查看几乎相同的数据也是如此。一个应用程序使用比每个客户端更多的数据似乎是合理的,这将进一步加剧问题。
当前版本的 Meteor 是否存在这个问题?如果是这样,可以使用哪些技术来限制服务器管理所有客户端订阅所需的内存量?