这是一种将海量的数据水平扩展的数据库集群系统,数据分别存储在sharding的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB集群。
MongoDB的数据分块成为chunk,每个chunk都是Collection中一段连续的数据记录,通常最大尺寸是200MB,超出则生成新的数据块。
要构建一个MongoDB Sharding Cluster需要以下三个角色:
- Shard Server
即存储实际数据的分片,每个Shard可以使一个mongod实例,也可以使一组mongod实例构成的Replica Set,为了实现每个Shard内部的auto-failover,MongoDB官方建立每个Shard为一组Replica Set。
- Config Server
为了将一个特定的collection存储在多个shard中,需要为该collection指定一个shard key,比如{age:1},shard key可以解决该条记录属于哪个chunk,Config Servers就是用来存储:所有shard节点的配置信息、每个chunk的shard key范围、chunk在各shard的分布情况、该集群中所有DB和collection的sharding配置信息。
- Route Process
这是一个前端路由,