【问题标题】:how to execute read only query on sharded replica set in mongodb如何对mongodb中的分片副本集执行只读查询
【发布时间】:2014-11-01 15:20:37
【问题描述】:
考虑以下配置 -
- 2 分片服务器每个都有 1 个副本集(例如 rs0 和 rs1)。
- 3 个配置服务器和 1 个查询路由器 (mongos)
上述分片配置工作正常。但是,我想从分片副本集(从 rs0 和 rs1 的次要)执行只读查询。因为,mongodb 数据存在于副本集 rs0 和 rs1 中。那么,如何配置它,从 rs0 和 rs1 的辅助节点获取数据?
【问题讨论】:
标签:
mongodb
replication
sharding
【解决方案1】:
您的分片设置不应影响读取首选项的使用,因此您可以继续使用 Secondary 或 SecondaryPreferred 访问每个分片中副本集的辅助节点:
分片集群中的读取偏好
2.2 版更改:在 2.2 版之前,mongos 不支持
读取偏好模式语义。
在大多数分片集群中,每个分片都由一个副本集组成。作为
这样,阅读偏好也适用。关于阅读
首选项,分片集群中的读取操作与
未分片的副本集。
与简单的副本集不同,在分片集群中,所有与
分片从客户端传递到 mongos 实例
实际连接到集合成员。然后mongos负责
阅读偏好的应用,它对
应用程序。
完全支持读取无需更改配置
分片环境中的偏好模式,只要 mongos 在
最低版本 2.2。所有 mongos 都维护自己的连接池
副本集成员。结果:
http://docs.mongodb.org/manual/core/read-preference-mechanics/