MongoDB 分片集群由以下组件构成:
使用mongos进行路由:
mongos充当查询路由器,在客户端应用程序和分片集群之间提供接口。
生产配置
在生产集群中,确保数据是冗余的,并且系统具有高可用性。对于生产分片集群部署,请考虑以下事项:
副本集分布
对于生产部署,我们建议至少在三个数据中心部署配置服务器和分片副本集。此配置可在单个数据中心出现故障时提供高可用性。
分片数量
分片需要至少两个分片来分发分片数据。如果计划日后启用分片,但在部署时又不需要启用,那么单个分片的分片集群可能会很有用。
mongos 的数量和分布
mongos 路由器在部署多个 mongos 实例时支持高可用性和可扩展性。如果代理或负载均衡器位于应用程序和 mongos 路由器之间,则必须为其配置客户端关联性。客户端关联性允许来自一个客户端的每个连接到达同一 mongos。要实现分片级别的高可用性,可以:
在已运行
mongod实例的同一硬件上添加mongos实例。在托管应用程序的同一硬件上嵌入
mongos路由器。
mongos 路由器会与您的配置服务器频繁通信。随着路由器数量的增加,性能可能会下降。如果性能下降,请减少路由器的数量。
下图展示了生产中使用的常见分片集群架构:

配置分片
8.0版本新增。
从MongoDB 8.0 开始,您可以将配置服务器部署为配置分分片,用于存储除集群元数据外的应用程序数据。与专用配置服务器部署相比,配置分分片所需的节点更少。有关更多信息,请参阅配置分片。
下图展示了使用嵌入式配置分分片的分片集群架构:
开发配置
为了进行测试和开发,您可以部署具有最少数量组件的分片集群。这些非生产集群具有以下组件:
下图展示了仅用于开发目的的分片集群架构:

从MongoDB 8.0 开始,您可以部署配置分片以进行测试和开发。此非生产集群具有以下组件:
一个
mongos实例。
警告
仅将测试集群架构用于测试和开发。