MongoDB是一个开源的、基于分布式的、面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像关系数据库的。MongoDB由C++编写, MongoDB可以运行在Windows、unix、OSX、Solaris系统上,支持32位和64位应用,提供多种编程语言的驱动程序。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB高性能、易部署、易使用,存储数据非常方便。MongoDB最大的特点是支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
托管平台提供的MongoDB存储架构是三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。Primary节点提供服务(一般情况),当Primary节点出现故障,系统自动从两个Secondary中选举新的Primary节点。特殊情况下,可开放一个Secondary节点提供读写分离的服务。
MongoDB复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,MongoDB Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
下图是一个托管平台提供的MongoDB复制集,包含1个Primary节点和2个Secondary节点。
【高并发读写】
MongoDB支持多线程,可充分利多核CPU的优势,有效的提高其读写性能。在千万级数据中,简单读操作的QPS的可达到15万/秒;简单写操作的QPS可达到5万/秒。在亿级数据中,简单读操作的QPS也能达到10万/秒。
【超强的压缩性】
托管平台提供的MongoDB服务,采用MongoDB-3.2版本(持续升级),采用Wired Tiger存储引擎,对于简单结构数据可达到65%左右的压缩,对于较复杂结构的数据压缩率也在50%左右,极大了减小了存储空间,降低了使用成本。
【容错性】
三副本架构拥有较高了容错能力,当Primary节点出现故障,系统自动从两个Secondary中选举新的Primary节点,业务完全无感知。与此同时利用另一个Secondary节点进行快恢复,可将替换节点恢复至最新状态。避免从冷备数据中恢复而导致的数据不一致问题。
【自动同步机制】
MongoDB副本集数据同步主要包含2个步骤:intial sync(全量同步)和replication(追同步源的oplog,即增量同步),保证了数据的主从副本间的一致性,为故障转移和读写分离提供了基础保障。
【隔离机制】
有效的控制业务对机器资源的使用,使得就算是多个实例混跑,也不会造成相互影响的恶性循坏,每个业务都能独占分配的资源。
【完善的监控体系】
提供CPU利用率、内存使用率、主从状态、连接数、磁盘空间等实例信息实时监控和历史趋势统计信息,并且通过可视化图标的形式展示,便于开发和运维随时了解实例动态、定位故障以及根据业务发展趋势预先提供技术保障。
【自动备份和快恢复】
采用每天全量冷备、实时oplog备份、应急Secondary备份。有效防范因误操作等原因对业务数据造成不可逆的影响,提高容灾能力。
【专业的管理平台】
托管平台提供的MongoDB服务,采用专业的管理控制台。从业务的申请接入,到业务的日常维护(问题定位、实例重启、备份、数据恢复),以及业务的扩展,都提供专业的全面的、自助的、可控的管理平台。全面提升研发、运维效率。
业务申请地址: http://bianque.webdev.com/index.php?s=/home/index/mongoApply
【支持弹性扩容】
MongoDB可以按需扩容,扩容过程方便快捷,不涉及物理机的迁移等重操作,出色平行扩容能力,也提高了资源的利用率。
【升级过程对用户透明】
定期对MongoDB的版本进行升级,使业务能第一时间享受到新特性带来的性能优化,同时升级过程对业务完全透明和无感,依赖较少,不影响业务的正常使用。
MongoDB存储服务具有其自身的特性和优势,在以下需求的业务场景中,使用该存储服务,能起到较好的效果:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。