从 MongoDB MongoAtlas 中的每个节点读取

Posted

技术标签:

【中文标题】从 MongoDB MongoAtlas 中的每个节点读取【英文标题】:Read from every node in MongoDB MongoAtlas 【发布时间】:2020-12-12 07:30:24 【问题描述】:

我正在研究基于 NO-SQL 数据库的理论,尝试在 python 中实现一些示例。 到现在为止一切都清楚了,只是因为我已经尝试对集合进行一些简单的查询,遵循一些简单的教程。

现在我的问题是关于阅读。我的理解是 MongoDB 等 NO-SQL 数据库执行批量加载,尤其是在读取模式下。

现在我有一个包含 60K 推文的集合,我想从每个节点平等地读取。

这就是我想阅读的方式

来自第一个节点(主节点)的 20K 条推文; 来自第二个节点(第一个从节点)的 20K 条推文; 来自第 3 个节点(第 2 个从属节点)的 20K 条推文;

是否可以在 MongoDB Atlas 中进行?如果是,我该如何实现?如何在 Python 中实现?

很抱歉这个问题,但我对这个话题有点陌生

【问题讨论】:

【参考方案1】:

副本集用于冗余,而不是负载平衡。当您从辅助节点读取数据时,您可能会收到陈旧的数据。通常,如果您需要当前数据,您总是会从主数据库中读取。

如果您不需要当前数据,则可以从辅助数据中读取。一个用例是执行分析查询,这些查询 1) 昂贵 2) 通常在陈旧数据上仍然可以正常工作。在这种情况下,您可以指示特定节点对常规操作隐藏,并且专门用于分析查询。

要在多个节点之间分配读取负载,您可以使用分片集群。

【讨论】:

好的,如何在 MongoDB Atlas 中使用分片集群实现跨多个节点的读取负载? 您需要选择一个可以在分片之间均匀分布数据的分片键。 有没有一个例子我可以看到如何做到这一点?抱歉,我是这个主题的新手,还不知道如何解决某些问题

以上是关于从 MongoDB MongoAtlas 中的每个节点读取的主要内容,如果未能解决你的问题,请参考以下文章

在AWS :: MongoError上使用解析服务器的MongoDB Atlas:找不到有效的复制集成员

使用MongoDB Atlas有什么好处?

带有 Node.js 连接错误的 MongoDB (Mongoose) - 寻找洞察力

如何使用 MongoDB 聚合管道从集合中的两个子文档中返回最小值?

对象散布在新数组内

java mongo java driver 3.4.0及以上版本的MongoDB Atlas错误