分片集群组件
一个 MongoDB分片集群由以下组件组成
生产配置
在生产集群中,确保数据冗余并且系统具有高可用性。以下是一些生产级分片集群部署的考虑因素:
副本集分布
在可能的情况下,考虑将每个副本集的一个成员部署在适合作为灾难恢复位置的地方。
注意
将副本集成员分布到两个数据中心比单一数据中心提供更多好处。在两个数据中心的分布中,
如果其中一个数据中心出现故障,数据仍然可用于读取,这与单一数据中心的分布不同。
如果拥有少数成员的数据中心出现故障,副本集仍然可以执行读写操作。
然而,如果拥有多数成员的数据中心出现故障,副本集将变为只读。
如果可能,至少将成员分布到三个数据中心。对于配置服务器副本集(CSRS),最佳实践是分布到三个(或更多,取决于成员数量)数据中心。如果第三个数据中心的成本过高,一种可能的分布方式是将承载数据的成员均匀分布到两个数据中心,如果公司政策允许,则将剩余成员存储在云端。
分片数量
分片至少需要两个分片来分配分片数据。如果计划在未来启用分片,但当前部署时不需要,则单个分片分片集群可能很有用。
mongos 数量及分布
mongos
路由器在部署多个 mongos
实例时支持高可用性和可伸缩性。如果在应用程序和 mongos
路由器之间有一个代理或负载均衡器,您必须为其配置 客户端亲和力。客户端亲和力允许来自单个客户端的每个连接都到达同一个 mongos
。为了实现分片级别的高可用性,您可以
在已经运行
mongos
实例的同一硬件上添加mongos
实例。在应用程序级别嵌入
mongos
路由器。
mongos
路由器经常与您的配置服务器通信。随着路由器数量的增加,性能可能会下降。如果性能下降,请减少路由器的数量。您的部署不应超过 30 个 mongos
路由器。
以下图显示了在生产环境中常用的常见分片集群架构

开发配置
为了测试和开发,您可以部署一个具有最少组件的分片集群。这些非生产集群包含以下组件
以下图显示了仅用于开发的分片集群架构

警告
仅使用测试集群架构进行测试和开发。