我有一个Mongo集群,它支持我在生产中使用的应用程序。这对我的业务非常重要,并且可以在多个方框中进行集群,以优化速度和冗余。我想让所述集群中的数据可用于运行分析查询和排队任务,但我绝对不希望这些数据损害生产性能。是否可以将我的所有数据镜像到一个盒子中,然后我将一些特殊标记投入到集群中,然后我可以将其用于分析?如果它很慢就没关系。我只是希望它便宜而不影响生产读/写速度。
答案 0 :(得分:1)
由于你在谈论冗余,我假设你有一个副本集。
在这种情况下,您可以使用hidden replica set member执行所需的计算。
请记住,会员数必须是奇数。如果添加节点,则可能还需要添加仲裁器。或者也许你可以隐藏一个已经存在的成员。
答案 1 :(得分:0)
如果您正在寻找一种方法来提高拥有大量数据的查询速度,那么您必须看起来可能看起来into sharding with mongodb。基本上它的作用是将大量数据分成小碎片并将它们存储在不同的机器上。
如果您希望增加冗余(为了进行备份或能够在不触及主服务器的情况下进行离线处理),您必须查看replication with mongodb。如果您正在进行复制,请记住,副本上的数据将始终落后于主数据库(无需担心,但只需知道此事实即可决定是否允许从副本中读取)。正如Rafa指出的那样,hidden replica sets非常适合备份和离线数据处理。它们仍然能够从主要数据中获取所有数据(具有较小的延迟),但对于二次读取是不可见的,并且不能成为主数据。
有一个很好的mongodb course正在深入讨论复制和分片,所以可能值得倾听并尝试它。