MongoDB集群如何跨节点分配封顶集合以平衡负载?我打算在基于MongoDB的CMS中使用Capped Collection来评论每个帖子。让我们假设我们有100,000个帖子,因此100,000个上限集合存储每个帖子的评论。这些Capped Collections是否可以在集群中均匀分布以实现读写可伸缩性?
我不想破坏上限集合。我希望在集群中均匀分布所有上限集合,以实现读写可伸缩性。
假设我们有5台机器。当我们创建新集合时,我需要在不同的机器/节点上创建它们,并在添加新机器时重新分配它们。
答案 0 :(得分:1)
答案 1 :(得分:1)
1)创建集合(加盖或不加盖)时,它会在数据库的主分片上设置。解决方案是为每个数据库设置一个集合,以便mongo在集群中平衡数据库。平衡规则不明确,但主要取决于每个碎片的当前负荷。
2)相信我,你应该为你的所有帖子使用一个大集合,并以巧妙的方式对它进行分片。它将确保整个群集中数据的高效和自动平衡。 超过上限的集合并不是真正节省空间的,因为它会预先为所有集合分配所有空间(这意味着你将浪费大量的空间) 除非你有充分的理由去封顶,否则你最好尝试分片。
一条建议:在分片键中使用'postId'字段,它可能是性能最佳的。