2011-10-14 18 views
0

这是一个MongoDB(2.0.0)的分区设置,每个分区有多个3个节点的副本集。 Mongoid正在经历mongos。我想为每个副本集中的其中一个辅助节点提供长时间运行的查询,否则会影响用户体验;我不想让普通的查询去那里。我看到我可以标记节点(数据中心意识),但我怎样才能将读取发送到特定标记的节点?如何在通过mongos时将MongoDB中的读取路由到特定的辅助节点?

另一个用例是在不同的数据中心中备份节点,但查询只应该到本地数据中心,而不是随机分布以包含远程数据中心。

回答

0

在咨询完文档之后,我很确定无法做到您想做的事情,至少不是在数据库级别。由于mongos从应用程序中提取碎片,因此无法将查询指向特定的碎片。

但是,我认为这里有一个更高层次的概念。如果您有一个不需要阻止UI的长时间运行的查询,则最好设置消息队列并将查询弹出。这样,查询就可以在后台运行。如果所述查询通常会影响系统的性能,那么您可能需要通过将其分解为在较小数据集上工作的查询并将该数据集重新组装在内存中或寻找降低其优先级的方式来降低其影响系统资源不受影响。

希望这会有所帮助。

相关问题