MongoDB 第三期:托管 MongoDB 存储服务

一、业务概述

1、简介

MongoDB是一个开源的、基于分布式的、面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像关系数据库的。MongoDB由C++编写, MongoDB可以运行在Windows、unix、OSX、Solaris系统上,支持32位和64位应用,提供多种编程语言的驱动程序。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB高性能、易部署、易使用,存储数据非常方便。MongoDB最大的特点是支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

2、架构

托管平台提供的MongoDB存储架构是三节点副本集的高可用架构,三个数据节点位于不同的物理服务器上,自动同步数据。Primary节点提供服务(一般情况),当Primary节点出现故障,系统自动从两个Secondary中选举新的Primary节点。特殊情况下,可开放一个Secondary节点提供读写分离的服务。

MongoDB复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,MongoDB Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。

下图是一个托管平台提供的MongoDB复制集,包含1个Primary节点和2个Secondary节点。

二、业务特性

1、 高性能

【高并发读写】

MongoDB支持多线程,可充分利多核CPU的优势,有效的提高其读写性能。在千万级数据中,简单读操作的QPS的可达到15万/秒;简单写操作的QPS可达到5万/秒。在亿级数据中,简单读操作的QPS也能达到10万/秒。

【超强的压缩性】

托管平台提供的MongoDB服务,采用MongoDB-3.2版本(持续升级),采用Wired Tiger存储引擎,对于简单结构数据可达到65%左右的压缩,对于较复杂结构的数据压缩率也在50%左右,极大了减小了存储空间,降低了使用成本。

2、 高可用性

【容错性】

三副本架构拥有较高了容错能力,当Primary节点出现故障,系统自动从两个Secondary中选举新的Primary节点,业务完全无感知。与此同时利用另一个Secondary节点进行快恢复,可将替换节点恢复至最新状态。避免从冷备数据中恢复而导致的数据不一致问题。

【自动同步机制】

MongoDB副本集数据同步主要包含2个步骤:intial sync(全量同步)和replication(追同步源的oplog,即增量同步),保证了数据的主从副本间的一致性,为故障转移和读写分离提供了基础保障。

【隔离机制】

有效的控制业务对机器资源的使用,使得就算是多个实例混跑,也不会造成相互影响的恶性循坏,每个业务都能独占分配的资源。

3、 高可靠性

【完善的监控体系】

提供CPU利用率、内存使用率、主从状态、连接数、磁盘空间等实例信息实时监控和历史趋势统计信息,并且通过可视化图标的形式展示,便于开发和运维随时了解实例动态、定位故障以及根据业务发展趋势预先提供技术保障。

【自动备份和快恢复】

采用每天全量冷备、实时oplog备份、应急Secondary备份。有效防范因误操作等原因对业务数据造成不可逆的影响,提高容灾能力。

【专业的管理平台】

托管平台提供的MongoDB服务,采用专业的管理控制台。从业务的申请接入,到业务的日常维护(问题定位、实例重启、备份、数据恢复),以及业务的扩展,都提供专业的全面的、自助的、可控的管理平台。全面提升研发、运维效率。

业务申请地址: http://bianque.webdev.com/index.php?s=/home/index/mongoApply

4、 可扩展性

【支持弹性扩容】

MongoDB可以按需扩容,扩容过程方便快捷,不涉及物理机的迁移等重操作,出色平行扩容能力,也提高了资源的利用率。

【升级过程对用户透明】

定期对MongoDB的版本进行升级,使业务能第一时间享受到新特性带来的性能优化,同时升级过程对业务完全透明和无感,依赖较少,不影响业务的正常使用。

三、 应用场景

MongoDB存储服务具有其自身的特性和优势,在以下需求的业务场景中,使用该存储服务,能起到较好的效果:

  • 海量数据的存储
  • 高并发读写需求
  • 异构数据混合存储
  • 严格的读写分离需求

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java 成神之路

使用 NIO 实现 echo 服务器

5547
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3655
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4385
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

38410
来自专栏跟着阿笨一起玩NET

c#实现打印功能

3632
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2767
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

5218
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

5848
来自专栏杨龙飞前端

scrollto 到指定位置

2934
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2752

扫码关注云+社区