Docs 菜单
Docs 主页
/
MongoDB Manual
/

分片集群组成部分

在此页面上

  • 生产配置
  • 开发配置

MongoDB 分片集群由以下组件构成:

  • 分片:每个分片都包含分片数据的一个子集。每个分片都必须作为一个副本集进行部署。

  • mongosmongos 充当查询路由器,在客户端应用程序和分片集群之间提供接口。mongos 可支持对冲读,从而最大限度地降低延迟。

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

在生产集群中,确保数据是冗余的,并且系统具有高可用性。对于生产分片集群部署,请考虑以下事项:

  • 将配置服务器部署为 3 节点副本集

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

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

如有可能,请考虑将每个副本集的一个成员部署在适合作为灾难恢复位置的站点中。

注意

将副本集成员分布在两个数据中心比分布在一个数据中心更有优势。分布在两个数据中心时,

  • 如果其中一个数据中心发生故障,数据仍可供读取,分布在单个数据中心则无法实现此功能。

  • 如果具有少数成员的数据中心出现故障,副本集仍然可以支持写入操作和读取操作。

  • 但是,如果具有大多数成员的数据中心出现故障,副本集将变为只读。

如有可能,请将成员分布在至少三个数据中心。对于配置服务器副本集 (CSRS),最佳实践是分布在三个数据中心(也可根据成员数量来增加数据中心数量)。如果使用第三个数据中心成本过高,一种可行的分布方法是在两个数据中心均匀分配数据承载成员,并将剩余成员存储在云中(如果公司政策允许)。

分片需要至少两个分片来分发分片数据。如果计划日后启用分片,但在部署时又不需要启用,那么单个分片的分片集群可能会很有用。

部署多个mongos路由器支持高可用性和可扩展性。 如果代理或负载均衡器位于应用程序和mongos路由器之间,则必须为其配置客户端关联性。 客户端关联性允许来自单个客户端的每个连接到达同一mongos 。 对于分片级高可用性,一种常见模式是将mongos实例放置在已运行mongod实例的同一硬件上。 另一种选择是将mongos路由器嵌入应用程序层级基础架构。

部署中可以拥有的mongos路由器数量没有限制。 但是,由于mongos路由器与配置服务器频繁通信,因此在增加路由器数量时应密切监控配置服务器的性能。 如果您发现性能下降,限制部署中mongos路由器的数量可能会有好处。

下图展示了生产中使用的常见分片集群架构:

示意图显示了包含多个分片和 mongos 路由器的生产级分片集群。

为了进行测试和开发,您可以部署具有最少数量组件的分片集群。这些非生产集群具有以下组件:

下图展示了仅用于开发目的的分片集群架构:

示意图显示了包含单个分片和 mongos 路由器的开发级分片集合。

警告

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

提示

另请参阅:

后退

分片