“MongoDB云上灾备”产品多活、灾备详细介绍

摘要: MongoDB云上灾备BLS产品正式发布

1. 背景
??当前的数据库系统生态中,大部分系统都支持多个节点实例间的数据同步机制 ,如Mysql Master/Slave主从同步,Redis AOF主从同步等,MongoDB更是支持3节点(及以上)ReplicaSet同步,上述机制很好的支撑了一个逻辑单元的数据冗余及HA。
??跨逻辑单元(3节点实例、主从实例),甚至跨单元、跨数据中心的数据同步,在业务层有时候就显得很重要,可以支持同城多机房的负载均衡,多机房的互备,甚至是异地多数据中心容灾(比如 光纤被挖断、地震等小概率事件)和多活。
??基于以上背景,云数据库MongoDB版本正式推出MongoDB实例间的双向同步产品“MongoDB云上灾备”(也称BLS),助力企业快速复制阿里巴巴异地灾备、多活架构。
??产品地址

2. 产品介绍
??“MongoDB云上灾备”通过从源数据库拉取Oplog(Operations Log)数据(其是MongoDB的日志,所有对数据库的修改操作都会保存到oplog中),然后将其传输到目的数据库进行回放实现复制的目的。我们通过构造两条复制链路实现双向同步的功能,基于此,可以实现灾备和多活的功能。

??上图给出了整体复制同步的流程。目前,“MongoDB云上灾备”支持的源、目的数据库类型为ReplicaSet副本集,Sharding模式即将上线,不支持单节点模式。为了减缓主节点的压力,系统从备(Secondary)上拉取Oplog。

全量加增量
??同步模型采用全量+增量的方式:在创建时会对源数据库进行全量同步,后续的修改通过增量来同步。

双活以及多活模型
??由于复制是异步模式,所以对于双活/多活模式,由用户保证不会对同一个唯一键同时修改,因为同时修改将可能导致数据错乱。目前冲突策略可以为覆盖或者忽略。后续将会上线校验程序,在用户操作相同唯一键时提供接口报错。

高效性保证
??同步延迟因地域和网络不同而不同,理论TPS能够接近20万(每秒传输20万条oplog)。为了保证批量传输的高效性,数据发送存在缓存机制,所以少量数据的同步时延可能超过5秒。

源数据库并行拉取,解决冲突依赖
并行发往Kafka通道
目的端在解决依赖的同时并行写入数据库
环形复制
??为了防止环形复制(数据从源复制到目的,又从目的复制到源),在Oplog日志中打入gid解决该问题。

可靠性传输
??支持断点续传,实例重启时数据同步不受影响。

高可用
??链路同步具有高可用性,如果同步进程挂掉,会有备进程启动接管服务。

限制说明
DDL语句同步暂未开放,所以如果修改了源、目的数据的索引操作,无法同步。
目的数据库需要创建,暂不支持在2个已有MongoDB实例之间直接搭通道。
当前只支持双活功能(2个MongoDB实例之间同步数据),后续会上线多活功能(多个MongoDB实例之间同步数据)。

  1. 架构
    ??在“MongoDB云上灾备”产品中,主要有3大组件:

BLS Manager。中心控制模块,负责Collector、Receiver的调度、监控等任务。
BLS Collector。数据采集模块,负责从源MongoDB数据库拉取Oplog数据后发送到Kafka通道。
BLS Receiver。数据回放模块,负责从Kafka通道中获取数据,然后写入目的MongoDB数据库。
下图展示了系统的整体架构图。

  1. 用户使用案例
    ??高德地图 App是国内首屈一指的地图及导航应用,阿里云MongoDB数据库服务为该应用提供了部分功能的存储支撑,存储亿级别数据。现在高德使用国内三中心的策略,通过地理位置等信息路由最近中心提升服务质量,业务方(高德地图)通过用户路由到三个城市数据中心,如下图所示,机房数据之间无依赖计算。数据在不同中心的同步通过“MongoDB云上灾备”产品实现。

    ??这三个城市地理上从北到南横跨了整个中国 ,这对多数据中心如何做好复制、容灾提出了挑战,如果某个地域的机房、网络出现问题,可以平滑的将流量切换到另一个地方,做到用户几乎无感知?
    ??目前策略是,拓扑采用机房两两互联方式,每个机房的数据都通过“MongoDB云上灾备”异步地将数据同步到另外两个机房。然后通过高德的路由层,将用户请求路由到不同的数据中心,读写均发送在同一个数据中心,保证一定的事务性。这样保证每个数据中心都有全量的数据(保证最终一致性) 。任意机房出现问题,另两个机房中的一个可以通过切换后提供读写服务。下图展示了城市1和城市2机房的同步情况。

    遇到某个单元不能访问的问题,Manager通过“MongoDB云上灾备”产品管理接口,可以获得各个机房的同步偏移量和时间戳,通过判断采集和写入值即可判断异步复制是否在某个时间点已经完成。再配合业务方的DNS切流,切走单元流量并保证原有单元的请求在新单元是可以读写的,如下图所示。

原文链接

本文为云栖社区原创内容,未经允许不得转载。

原文地址:http://blog.51cto.com/13876536/2164950

时间: 2024-10-18 06:24:16

“MongoDB云上灾备”产品多活、灾备详细介绍的相关文章

如何用阿里云的ECS建造属于你自己的网站详细介绍

作为IT界的一份子,搭建属于自己的网站对于我们来说很重要,也是十分基础的知识,现在我就以阿里云的ECS云服务器为例,来搭建属于自己的第一个网站,此博客会为你全面介绍拥有一个合法的网站的所有涵盖:云服务器的购买及备案-域名的注册认证-如何搭建网站(包括Linux和Windows系统).我相信对于一个新手来说,就连服务器的购买,域名问题都迷惑不解,所以我想一点一点的进行一下详细的介绍与分享. 一.云服务器的购买以及备案.(更详细的介绍:点击这里) 想要搭建自己的网站,当然要有属于自己的一个云空间,既

从冷备到多活,阿里毕玄谈数据中心的异地容灾

大数据时代,数据中心的异地容灾变得非常重要.在去年双十一之前,阿里巴巴上线了数据中心异地双活项目.InfoQ就该项目采访了阿里巴巴的林昊(花名毕玄). 毕玄是阿里巴巴技术保障部的研究员,负责性能容量架构.数据中心异地多活项目就是他主导的.多活:从同城到异地 InfoQ:首先请介绍一下数据中心异地多活这个项目. 毕玄:这个项目在我们内部的另外一个名字叫做单元化,双活是它的第二个阶段,多活是第三个阶段.所以我们把这个项目分成三年来实现.所谓异地多活,故名思义,就是在不同地点的数据中心起多个我们的交易

阿里云上到底能运行SAP哪些产品?

本文主要内容大部分来源于SAP已经发布的note: 2552731 - SAP Applications on Alibaba Cloud: Supported Products and IaaS VM Types. 到2018/01/19为止这个note只有英文版(另一个日文版是机器翻译的).将来原始的note可能会被SAP负责这个note的同事继续更新,届时本文内容可能会同原始的note有所差异. 您可以通过点击文末的"阅读原文"来查看原始英文版的note. 阿里云上提供的基础设施

Node+mongodb线上部署到阿里云

部署使用的主要工具是pm2+nginx,使用码云的私有仓库,自动部署到服务器,私有仓库和服务器要事先设置好免密码登录.使用DNSPOD进行域名解析.事先准备好阿里云服务器,域名,一个网站.阿里云已经安装好mongodb数据库,node,pm2,git等.将本地网站所用的数据库备份一份,上传到服务器上. 1.先在dbspod添加一条A记录 2.码云上建立私有仓库 3.在项目中添加ecosystem.json 4.在服务器/www目录下创建文件夹 5.上传代码到私人仓库和服务器 一键部署到服务器 p

云上安全不容忽视,华为云技术硬实力织成“保护网”

在云计算时代,最值钱的莫过于数据.作为企业的核心资产,各行业对于云上数据信息安全都保持着高度重视.把数据放到云上是否足够安全,已经成为各个企业在上云时考虑最多的问题.近日,工业和信息化部网络安全管理局发布了<关于相关企业网络与信息安全检查结果的公示>.公示显示,工信部对7家电信企业在落实<网络安全法>.<通信网络安全防护办法>.<电信和互联网用户个人信息保护规定>等法律法规情况上进行了实地检查,检查结果表明这7家知名企业均存在问题,并被责令整改.此举可谓为各

华为云携手英方,助力新大正物业实现云上两地三中心

云平台宕机事件不断出现,这也让云灾备的热度居高不下. 传统的灾备更多的是基于物理层面进行,过多的依赖于硬件,对于云上的虚拟化平台并不友好.而英方基于操作系统层面的灾备方式在这样的环境下就表现出了更强的优势.比如对不同虚拟化平台的兼容性,对网路带宽的低依赖性,使得英方在云平台上的表现更佳优益,也进一步推进了英方与华为云的合作.多年的合作基础一直是英方和华为不断加深技术交流和沟通的基石.撇开业务上的相辅相成和企业愿景上的志同道合,在技术上,英方和华为的融合也会取得1+1>2的效果. 以不断完善的技术

把阿里巴巴的核心系统搬到云上,架构上的挑战与演进是什么?

作者丨张瓅玶(谷朴)阿里巴巴研究员 阿里巴巴核心系统作为全球最大规模.峰值性能要求最高的电商交易系统,在 2018 年之前只通过混合云弹性上云方式,为 双11 节约大量成本.直到 2019 年,阿里巴巴实现了核心交易系统全面上云并经历了 双11 峰值的考验. 在今天由极客邦科技举办的 ArchSummit 全球架构师峰会 2019 北京站上,阿里巴巴研究员张瓅玶博士作了主题演讲<阿里巴巴核心系统上云:挑战和架构演进的思考>,以下内容为演讲整理. 核心系统上云之路 工程师时常把我们的系统用飞机来

阿里云上的RDS数据的本地同步

一.背景知识 数据库RDS 阿里云云数据库RDS(ApsaraDB for RDS,简称RDS)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于飞天分布式系统和全SSD盘高性能存储,支持MySQL.SQL Server.PostgreSQL和PPAS(高度兼容Oracle)引擎,默认部署主备架构且提供了容灾.备份.恢复.监控.迁移等方面的全套解决方案,解决数据库运维的问题. RDS主从架构 应用连接RDS,流量通过SLB指向主从节点的master,所以如果我们连接RDS的账户具有REPLICAT

Oracle 12c dataguard云上挖坑记

--为某机场贵宾业务部署oracle 12c到百度云 项目需求 据称现有环境为多节点RAC,管理成本高,主要体现在没有专业技术人家对基础设施进行维护.迁移到云上以后,基础设施维护就节省掉了.而且后边容量扩充易如反掌,远程维护之类也比物理环境去现场操作方便许多. 但在云上,oracle RAC实现的两个前提条件--共享存储及心跳网络,不被正式支持,因此要在云上部署oracle RAC用于生产环境,不是一个好的解决方案.经过多轮讨论,一致同意在百度云部署单实例oracle 12c,以dataguar