MongoDB 分片集群(Sharded Cluster)由以下三个主要组件组成: 1. Shard(分片) 作用:存储实际的数据。 详情:每个分片只保存集群总数据的一部分(子集)。为了保证高可用性和数据一致性,在生产环境中,每个分片通常都是一个副本集(Replica Set)。 2. Config Server(配置服务器) 作用:存储集群的元数据和配置信息。 详情:元数据包含了数据块(Chunk)与分片的映射关系。 路由进程需要通过配置服务器来知道数据具体存放在哪个分片上。从 MongoDB 3.4 版本开始,配置服务器必须部署为副本集(CSRS)。 3. mongos(查询路由) 作用:作为客户端和分片集群之间的接口。 详情: 本身不存储数据。应用程序直接连接到 ,而不是直接连接到分片。 根据配置服务器的元数据,将客户端的读写请求路由到正确的分片上,并将各个分片返回的结果进行聚合,最后返回给客户端。 --- 简单总结它们的关系: 应用程序连接 mongos -> mongos 询问 Config Server 数据在哪里 -> mongos 去对应的 Shard 存取数据。