MongoDB驱动程序使用服务器选择算法来选择要使用的副本集成员,或者当连接到多个 mongos实例时,选择使用哪个mongos实例。
服务器选择在每次操作中进行一次。
此页面上的信息适用于在以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
副本集阅读取偏好
服务器选择在每次操作时都会发生一次,并受读取偏好和 localThresholdMS 设置的控制,以确定节点的读取资格。对于每个操作,都会重新评估读取偏好。
读取偏好模式 | 选择进程 |
|---|---|
|
|
| |
| |
| |
|
分片集群的读取偏好
负载均衡
如果连接种子列表中存在多个 mongos 实例,则驱动程序将确定哪个 mongos 是“最接近的”(即具有最低平均网络往返时间的节点),并通过添加此“最接近”的 mongos 实例和 localThresholdMS 的平均往返时间来计算延迟窗口。该驱动程序将在延迟窗口内的 mongos 实例之间随机进行负载平衡。
读取偏好和分片
对于具有副本集分片的分片集群,mongos 在读取分片时会应用读取偏好。服务器选择受读取偏好和 replication.localPingThresholdMs 设置的控制。对于每个操作,都会重新评估读取偏好。
读取偏好模式 | 选择进程 |
|---|---|
|
|
| |
| |
| |
| [1] | (1, 2) 默认阈值为 15 毫秒。 |