Mongodb中Sharding集群
随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成多个更小的chunk,并分布在集群中多个mongod节点上,最终达到存储和负载能力扩容、压力分流的作用。在sharding架构中,每个负责存储一部分数据的mongod节点称为shard(分片),shard上分布的数据块称为chunk,collections可以根据“shard key”(称为分片键)将数据集拆分为多个chunks,并相对均衡的分布在多个shards上。 1)sharding模式将应用的数据访问操作分散到多个shard上,每个shard只承担一部分请求;比如read操作只需要访问持有数据的shard节点即可。 2)sharding模式也减少每个shard节点的数据存储量。 上图为sharded cluster的拓扑结构,它包含三个组件:shards、config servers和query routers: 1)Shards:存储节点,为了提高可用性和数据一致性,通常每个shard是一个“replica set”结构。 2)Query routers:查询路由节点,即mongos节点,mongos接收客户端请求