使用困扰
- 随着业务的快速增长,存储数据增速加快,磁盘空间将很快超过T级,如何平稳扩容?
- 在主业务中,每次写入的数据量都比较大,带宽经常会被打满,如何应对?
- 有些业务需要高频次的数据库写入,经常打满IOPS,如何处理?
- 自建MongoDB sharding 运维成本比较高, 如何有效降低运维复杂性,减少成本?
- ...........
云数据库MongoDB基于3.2版本推出了
什么是MongoDB Sharding
通过mongos建立一个水平扩展的数据库集群系统,将数据库分表存储在sharding的各个节点上,MongoDB sharding 实现自动化水平无限扩容。
动态扩容升级
可动态增加节点,水平扩展,响应业务数据快速增长,升级对业务无影响
自动负载均衡
可以自动在节点间迁移数据,达到负载均衡,最大化利用系统资源
使用接口透明
可以使用完全相同的驱动,大部分功能可用,基本不需要更改任何代码
写入和大数据写入场景的性能压力。除了拥有超高的性价比,云数据库MongoDB sharding 支持自建sharding的不停业务热迁移,满足业务平滑过渡的需求。
MongoDB 特性及优势
-
灵活的文档模型
JSON 格式存储最接近真实对象模型,对开发者友好,满足开发快速迭代的需求
-
高可用复制集
满足数据高可靠、服务高可用的需求,运维简单,故障自动切换
-
可扩展分片集群
一键无缝升级,满足海量数据存储,服务能力水平扩展,且扩容对业务无影响
-
高性能
mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持满足各种场景需求
-
强大的索引支持
地理位置索引可用于构建 各种 O2O 应用、文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求
-
aggregation & mapreduce
解决数据分析场景需求,用户可以自己写查询语句或脚本,将请求都分发到 MongoDB 上完成
-
Gridfs
解决文件存储的需求
-
事务支持
MongoDB sharding支持单文档事务
常见使用场景
云数据库MongoDB 已经渗透到各个领域,
比如游戏、物流、电商、社交、物联网、视频直播等。
-
游戏场景
使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新。
-
物流场景
使用 MongoDB 存储订单信息,以内嵌数组的形式来存储,一次查询即将订单所有的变更读取出来。
-
社交场景
使用 MongoDB 存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引查询附近的人和地点。
-
互联网场景
使用 MongoDB 存储所有接入的智能设备,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
-
视频直播
使用 MongoDB 存储用户信息、用户评论信息、礼物信息等。满足视频直播类流量突发的业务需求。