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

开发配置
为了进行测试和开发,您可以部署具有最少数量组件的分片集群。这些非生产集群具有以下组件:
下图展示了仅用于开发目的的分片集群架构:

警告
仅将测试集群架构用于测试和开发。