当前位置: 首页 > Linux

MongoDB测试

时间:2023-04-06 11:52:16 Linux

MongoDB通用部署架构单机版:开发测试复制集:高可用分片集群:横向扩展为什么要用分片集群?数据容量一天天增大,访问性能一天天下降。怎么破?新产品异常如何支持更多的并发用户?单个数据库已经有10TB的数据,恢复需要1-2天。如何加快速度?如何解决地理分布的数据碎片?举个例子说明一下:情况如下:银行交易单10亿条数据,超载交易数0-1,000,000,000解决方案1??将数据分成两半,分别放在两个物理数据库中。交易号:0-500,000,000交易号:500,000,000-1,000,000,000方案二将数据分成四份,分别放在四个物理库中。交易编号:0-250,000,000交易编号:250,000,000-500,000,000交易编号:500,000,000-750,000,000交易编号:750,000,000-1,000,000,000Shard集群剖析:路由节点mongosgraphB3[r>B3[r]-->-->-->-->}C-->|Shared1/config1|Z[复制集1]B-->D{mongos}D-->|Shared2/config2|Y[复制集2]B-->E{mongos}E-->|Shared3/config3|X[replicationset3]路由节点提供集群的单一入口点,转发应用端请求选择合适的数据节点进行读写和合并多个数据节点的返回。无状态mongos推荐至少2个配置(目录)节点提供集群元数据存储和分片数据分布映射普通复制集架构数据节点以复制集为单位横向扩展最多1024个分片分片之间数据不重复全部分片协同完成MongoDB分片集群特性应用全透明,无需特殊处理,数据自动平衡,动态扩容,无需下线提供三种分片方式基于range的分片集群数据分布方式BasedonHashbasedonzone/tag分片集群数据分布方式-基于范围(最常用)ProsConsshardkeyrange查询性能好数据分布可能不均匀优化读取容易出现热点Shardedcluster数据分布方式-基于hashProsCons,数据分布均匀,写优化区间查询效率低额外消耗较多,管理复杂。尽量不要拆分它。如果确实需要使用,请认真学习下一讲。