分片(Sharding)是一种将海量的数据水平扩展的数据库集群系统。而在MongoDB提供了auto-sharding的功能,通过简单的配置就可以构建一个分布式 MongoDB 分片集群。MongoDB 的数据分块称为 chunk。每个 chunk 都是 Collection 中一段连续的数据记录,通常最大尺寸是 200MB,超出则生成新的数据块。对于数据的分片基于chunk来实现。
一个分片集群包含下面组成(搭建高可用MongoDB集群(四):分片这位大牛已经把高可用shard集群(mongos with replica set)的原理和搭建过程写的很清楚,这里我很无耻的拿来直接实战搞起:),架构上略有不同。
一共使用4台主机,配置了三个configdb。数据三个shard,每个shard为一个3节点的replica set都作为复制节点。如上图所示。这个架构从实际上来说还是有很多问题,这里就不在深究了。 Continue reading