文档菜单
文档首页
/
MongoDB 手册
/

分片集群组件

本页内容

  • 生产配置
  • 开发配置

一个 MongoDB分片集群由以下组件组成

  • 分片:每个分片包含分片数据的一部分。每个分片都必须以 副本集 的形式部署。

  • mongos:Themongos 作为查询路由器,在客户端应用程序和分片集群之间提供接口。

  • 配置服务器:配置服务器存储集群的元数据和配置设置。配置服务器必须以副本集(CSRS)的形式部署。

在生产集群中,确保数据冗余并且系统具有高可用性。以下是一些生产级分片集群部署的考虑因素:

  • 将配置服务器部署为3成员副本集

  • 将每个分片部署为3成员副本集

  • 部署一个或多个mongos 路由器

在可能的情况下,考虑将每个副本集的一个成员部署在适合作为灾难恢复位置的地方。

注意

将副本集成员分布到两个数据中心比单一数据中心提供更多好处。在两个数据中心的分布中,

  • 如果其中一个数据中心出现故障,数据仍然可用于读取,这与单一数据中心的分布不同。

  • 如果拥有少数成员的数据中心出现故障,副本集仍然可以执行读写操作。

  • 然而,如果拥有多数成员的数据中心出现故障,副本集将变为只读。

如果可能,至少将成员分布到三个数据中心。对于配置服务器副本集(CSRS),最佳实践是分布到三个(或更多,取决于成员数量)数据中心。如果第三个数据中心的成本过高,一种可能的分布方式是将承载数据的成员均匀分布到两个数据中心,如果公司政策允许,则将剩余成员存储在云端。

分片至少需要两个分片来分配分片数据。如果计划在未来启用分片,但当前部署时不需要,则单个分片分片集群可能很有用。

mongos 路由器在部署多个 mongos 实例时支持高可用性和可伸缩性。如果在应用程序和 mongos 路由器之间有一个代理或负载均衡器,您必须为其配置 客户端亲和力。客户端亲和力允许来自单个客户端的每个连接都到达同一个 mongos。为了实现分片级别的高可用性,您可以

  • 在已经运行 mongos 实例的同一硬件上添加 mongos 实例。

  • 在应用程序级别嵌入 mongos 路由器。

mongos 路由器经常与您的配置服务器通信。随着路由器数量的增加,性能可能会下降。如果性能下降,请减少路由器的数量。您的部署不应超过 30 个 mongos 路由器。

以下图显示了在生产环境中常用的常见分片集群架构

Diagram that shows a production-level sharded cluster
containing multiple shards and mongos routers.

为了测试和开发,您可以部署一个具有最少组件的分片集群。这些非生产集群包含以下组件

以下图显示了仅用于开发的分片集群架构

Diagram that shows a development sharded cluster
containing a single shard and mongos router.

警告

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

提示

另请参阅

返回

分片