网络通信 频道

571亿背后:DRC助阿里实现异地双活

  

571亿背后:DRC助阿里实现异地双活
▲阿里巴巴技术保障 钱在晨

  数据库运维专场的第二位演讲嘉宾,来自阿里巴巴技术保障 钱在晨就《双十一异地双活实时数据同步基础设施DRC》进行了主题演讲。侯军伟表示,自我介绍到,自己阿里技术保障部数据库团队技术专家,三年来专注于DRC的产品研发和系统架构,对与数据库复制,产品可运维性以及高可用有着比较丰富经验。

  钱在晨从支付宝君的一条微博讲起,杭州供电缺口,导致支付宝机房被拉闸限电,所幸阿里最终还是熬过来了,但从那一刻起, 我们就明白了容灾需要,一个城市已经不能满足需求,而且阿里还带来了国际战略业务诉求。

571亿背后:DRC助阿里实现异地双活

  ▲异地双活目标

  由于异地机房距离较远,数据库要实现数据实时同步就非常困难,目前在跨异地的情况下很少看到数据库层面的双活案例, 大部分都是在应用层实现了数据的分片, 底层数据库还是相互独立的,普遍场景是应用双活+db容灾,但带来的问题是一旦跨域访问DB可能引起很高的延迟累积。

  部署双活数据中心难度也很大,尤其是异地双活,主要涉及到数据库同步效率的问题,如果数据库同步效率大不到要求, 在切换时就会导致一段时间的数据丢失, 在异地“双活”模式下,两地数据中心同时接受交易, 技术难度很大。


▲支撑2014年双11淘宝天猫571亿的交易架构

  钱在晨表示,“阿里的异地双活场景实际是分为不同维度的,分为卖家和买家这种情况,如果是仅仅满足数据库双向循环复制这些需求,我们设计了一套结构原理简单同步架构, 从源端数据库到目的端数据,大概经历的过程就是 提取日志,存储, 发送,通过网络传递,然后在目的端进行复制。”

  此外DRC除了数据库复制的功能,还可以承担数据库增量的消息分发中心的角色,在秒级(其实更小)将数据变更发送到应用/消息中间件/缓存和数据仓库。微博上有人问oceanbase的阳老师,是否有将数据库更新投递给消息中间件的功能, 这里其实DRC已经承担了一部分这样的功能,在oceanbase数据库需要的时候,以很短的时间通过标准化接口支持了ob的增量消息分发和投递。


▲DRC定义 Data Replication Center, 全球数据库数据同步和分发的基础设施

  基础设施DRC 一致性:基于日志流式抓取、回放库表结构变更、回放库表结构变更、基于事务的冲突检测。

  基础设施DRC 低延迟:最大延迟不超过1秒、消息协议优化、三级数据存储,预读优化IO、多连接复用和传输压缩、高效的并发复制算法。

  基础设施DRC 高可用:主备切换、拓扑变化、心跳跟踪、多维度容灾。

  钱在晨表示,正是有了以上特性地支持, DRC才能够在14年双11中成功地支撑了峰值流量地冲击,双11全天, 抽取了上百TB数据量地增量日志。对于这么强大的平台,DRC经历了三个时期的变化, 最终发展成为成熟的服务平台。

  好消息来了,“DRC将通过AMP提供实时数据增量给云用户, 会尽快邀请内测” 钱在晨说道。同时他还指出,“DRC实际上早已在阿里云通过提供实时的RDS增量日志,服务于内部的云产品客户,比如DRC帮助开放搜索服务OpenSearch, 同步用户实时产生的数据增量,提供实时搜索服务。 DRC同时提供同步增量到odps的功能,帮助用户获得最实时的数据分析能力。一个更好的消息是, DRC即将对外部用户直接开放服务,DTS (Data transformation service),中文名叫“南天门”将依靠DRC提供的底层服务,提供用户上云迁移,增量数据消费以及RDS跨域实例同步服务。

  在最后,钱在晨也分享了阿里云与某全球知名云计算服务商在用户数据库上云和云上迁移的对比,基本上他们的rds每个类型的数据库都必须要有一套或者几套专门的方案来进行迁移 比如对于mysql迁移的描述, 给出了25页的文档,而且是急于mysql自身提供的mysqldump和import,以此对比阿里云DTS,真正可以做到一站式服务, 一键迁移,增量导出和实例同步,并且整个迁移过程中不需要用户停止自己的服务进行切换。

  “数据中心异地双活”的意义在于可使电商网站具备跨地域的容灾能力,保障不受单地域的灾难的影响。此外,在日常的系统运行中,数据中心可根据用户地域就近接入,提升购物体验。  

1
相关文章