2

我有一个支持我在生产中使用的应用程序的 Mongo 集群。它对我的业务非常重要,并且聚集在许多盒子中以优化速度和冗余。我想让所述集群中的数据可用于运行分析查询和排队任务,但我绝对不希望这些损害生产性能。是否可以将我的所有数据镜像到我放入集群的单个盒子中,并带有一些特殊标签,然后我可以将其用于分析?如果速度慢就好了。我只是希望它便宜且不影响生产读/写速度。

4

2 回答 2

1

既然你在谈论冗余,我假设你有一个副本集。

在这种情况下,您可以使用隐藏的副本集成员来执行您需要的计算。

请记住,成员数必须是奇数。如果您添加一个节点,您可能还需要添加一个仲裁器。或者,也许您可​​以隐藏其中一个已经存在的成员。

于 2013-10-29T00:50:19.737 回答
0

如果您正在寻找一种方法来提高具有大量数据的查询速度,您必须考虑使用 mongodb 进行分片。基本上它所做的是将大量数据分成小碎片并将它们存储在不同的机器上。

如果您希望增加冗余(为了进行备份或能够在不接触主服务器的情况下进行离线处理),您必须考虑使用 mongodb 进行复制。如果您正在执行复制,请记住副本上的数据将始终落后于主副本(无需担心,但只需要知道这一事实即可决定是否允许从副本读取)。正如 Rafa 所指出的,隐藏副本集非常适合备份和离线数据处理。他们仍然能够从主节点获取所有数据(延迟很小),但对辅助读取不可见,并且不能成为主节点。

有一个很好的mongodb 课程,它深入讨论了复制和分片,所以可能值得一听和尝试。

于 2013-10-29T01:21:05.183 回答