MongoDB 复制集架构,基于MongoDB复制,构造出的分布式数据库解决方案:
MongoDB提供了和MySQL Cluster类似的架构,在configre server、mongos、mongo中,包含:
configure server: 提供集群元数据,其中包含基本信息,每个replica set,trunk及trunk大小等信息
Mongs: 数据访问路由、查询优化、数据merge、sort,裁剪等功能,请求推送等
mongo+replica set:数据存取(使用mongo协议还提供直接数据访问)
MongoDB Shard架构
MongoDB在构建集合时,需要提供数据分片规则,该规则将被记录在mongoDB中,查询请求mongos发起请求,mongos根据存取路径在Replica中访问数据
由于MongoDB为用户提供了一个选择性,将数据如何进行切片,在对用户访问透明的情况下,快速存取数据
MongoDB面临的问题:
以非分片规则访问数据时(索引可以建立在各个分片),将导致所有Mongo簇节点全扫描(可以通过多份冗余拷贝并进行不同的分片规则实现,这也是当前数据分片应用常用的手段)
当新增数据簇时,将导致所有数据节点重构,直接影响性能
总结:
MongoDB使用堆存取路径方法组织数据、不包含ACID特性对于数据大量数据更新及查询(对于拥有MVCC的架构,将降低在高并发、大数据集的响应速度)有很大的提升,但没有ACID保证关键数据的稳定、安全