异地多活数据流基础设施DRC 双11支持571亿交易额背后的武器

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文将简要介绍我在QCON上做的DRC在异地双活的场景设计和应用分享,另外,我将介绍一下DRC在阿里云的使用场景。

本文将简要介绍我在QCON上做的DRC在异地双活的场景设计和应用分享,另外,我将介绍一下DRC在阿里云的使用场景。

DRC(Data Replication Center)是阿里巴巴技术保障部数据库团队自主研发的、数据同步和数据分发的实时数据流服务。这个数据服务在阿里巴巴里已经上线了几年,2014年双十一成功支撑了571亿交易异地双活的异地秒级数据同步。

DRC支持读取集团MySQL,RDS,Oceanbase,HBase,Oracle等多种不同的数据源的实时增量数据,支持写入数据库、Metaq、ODPS等多种存储媒介。另外,在RDS官网提供外部用户迁移上云服务,目前可以支持RDS跨域同步,RDS实时binlog订阅,七网隔离数据订阅等等。

首先简单介绍一下,DRC是什么。

image.png

DRC的架构图:

image.png

淘宝新一代架构– 异地多活,实现了一种数据中心热拔插的方式来应对业峰值,能实现流量实时切换,数据实时恢复。

image.png

淘宝异地双活的实现简要图。

image.png

异地多活在数据方面的挑战是非常大的。双十一期间,交易会激增,所以交易链路做了单元化。交易链路的数据分为三个维度,买家,卖家,商品。买家之间通常没有太多交叉,天然的适应这种隔离,而且买家对延迟的敏感度非常高,所以按照买家维度切分,在单元内封闭,而卖家和商品都是在中心写入。

数据方面的两个核心要求是:

1)一致性,要求卖家和商品一致,单元和中心一致,也就是数据同步不能丢数据,不能错数据,还要保证事务;

2)实时性,需要做到秒级别的延迟。

双单元的同步架构有两种,一种是读写分离的方式,中心写,单元读。单元需要的数据如果没有从中心及时同步过来,或者同步错了,那有问题这段时间的交易会全部收到影响。这里的核心是,保证秒级延迟,同时,保证一致性。

image.png

第二种同步架构是单元封闭的方式。中心和单元各有写入,我们通过冗余,使得中心和单元随时可以各自接管。

image.png

这里的关键是:

  • 避免循环复制:通过在DB透传打标事务的方式实现。
  • 限流:峰值的压力,我们单元化本来就选取了流量激增的业务,两边都实时同步100%全量数据,峰值对每个系统的压力有增无减。DRC的store和congo都可以根据TPS或者流量限流。限速算法的核心思想分为批量采样,奖惩时间,平滑变速。

异地多活中DRC的核心能力就是在低延迟,一致性和高可用。

image.png

image.png

一致性:

  • 数据有序:抓取的增量是流式的,通过pipeline实现保证数据的有序性。
  • 数据不丢:通过二分查找的方法定位时间戳的最早日志,另外,也检查了传输的完整性。
  • 数据不错:这里面需要解决的问题非常多,例如:binlog的meta不完整的,通过本地回放机制保证解析正确;多重存储校验机制确保数据正确;通过自适应字符集的方法处理不同字符集的正确性。
  • 事务一致:在DRCcongo模块实现的一种基于事务冲突检查方法,通过事务间的有向图实现事务并发逻辑。

image.png

单元化对DRC的要求是跨单元的延迟在1秒以内,否则,可能会影响用户体验,双十一峰值的用户量非常大,一旦延迟用户有感知,可能会有带来很多投诉。通过很多方面来实现这个稳定的秒级延迟:

  • 最优部署:跟DBA同学搭建线上最小单元化测试环境,找到性能最优的部署方式。
  • 数据传输:针对网络稳定性,DRC有一些不同的策略。流式传输的实时性最好;中美同步这种场景,丢包率高,网络延迟较大,需要多连接复用和压缩;对于下游处理速度有限的,下游可使用批量发送;另外,DRC正在优化传输消息协议。
  • 数据存储:DRC store有三层存储机制,缓存,本地,分布式。本地存储DRCqueue可以支持读写50wqps。对于实时数据,基本都在缓存中,读效率高;对于部分有延迟(比如批量订正),或者需要读历史的场景,做了预读等IO优化;对于只需要订阅部分库表的,做了索引优化。为了提高容灾能力,历史数据将存到分布式存储,如果一旦任务异常,只需要恢复部分实时数据。为了提高高可用性,备store可以减缓下游压力,也可以支持跨地域容灾。
  • 并发复制:写入数据库将并发,同时,在热点的问题上,我们还要做到尽可能热点串行,非热点能并发。
  • 数据稳定性:热点数据,缓存,并发解析等…

image.png

  • 数据源和目的端如果发生主备切换,需要立刻感知,并且找到正确的切换位点重拉,保证不丢数据。
  • 当任务挂了,我们能自动重启任务,当机器挂了,能漂移到其他机器上。
  • 数据包括两个部分,meta和数据,他们都有容灾机制。
  • 核心业务和非核心业务需要隔离,核心业务在双十一的峰值压力会很大,而过了双十一又恢复平时的水位,再散列任务,提到机器利用率。
  • 如果有非常慢的下游,下游可能会对顺序写有影响,DRC也有备store,将部分延迟较大或者影响较大的下游隔离,扩展store的能力。
  • 监控是个非常重要的部分,需要产品和运维配合,产品上需要有心跳,打点,运维上需要确保延迟告警。

在2014年双十一,我们处理了2000个实例的增量数据,峰值每秒处理了30GB的数据,有17000多下游做实时订阅。除了交易峰值限流,核心库同步均无延迟。

image.png

image.png

在小微里,DRC支持OB 1.0的跨域数据同步。

image.png

在集团,DRC支持不同的下游消费订阅实时增量数据。

image.png

在云上,DRC已经提供了一年半的迁移上云的服务,每周有300+RDS实例使用这个服务,全量+增量,应用可以无缝切换。数据库团队提供了一个升级服务,DTS,已经在云上服务一个月。

DRC正在实现为更多RDS用户提供便捷的服务:

  • RDS跨域同步:RDS replication本身不支持跨域,DRC通过异步复制,对RDS无入侵。

image.png

  • RDS binlog服务:目前已支持RDS和DRDS。可以通过单机版集群版的客户端订阅新增数据,就像水龙头一样。目前我们已经支持的内部客户包括opensearch,CDP,精卫,网聚宝等数据搜索服务。

image.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
22天前
|
Java Go 双11
“天猫双11”背后的流量治理技术与标准实践
一年一度的天猫双11 已经拉下帷幕,大家在疯狂买买买的过程中一定会有疑问:如何保障微服务在双十一的超级峰值下也能如丝般顺滑稳定?这背后的技术原理是怎样的,有没有一些最佳实践与标准?这篇文章就为大家介绍如何结合 Sentinel 与 OpenSergo 玩转双十一背后的流量治理技术与标准。OpenSe...
“天猫双11”背后的流量治理技术与标准实践
|
存储 机器学习/深度学习 人工智能
在容错极低的服务器市场一年一增长,新华三究竟是如何实现的?
在容错极低的服务器市场一年一增长,新华三究竟是如何实现的?
268 0
在容错极低的服务器市场一年一增长,新华三究竟是如何实现的?
|
人工智能 运维 Cloud Native
抛弃传统集中式架构 江西农信携手阿里云实现业务系统平滑迁移上云
抛弃传统集中式架构 江西农信携手阿里云实现业务系统平滑迁移上云
抛弃传统集中式架构 江西农信携手阿里云实现业务系统平滑迁移上云
|
人工智能 搜索推荐
解决方案应用实例 |搭载“业务+数据”双中台,贝泰妮实现高速奔跑
贝泰妮联合阿里云,通过建立技术中台和数据中台、升级现有的信息管理系统和会员管理系统、引入新的管理模块,进一步加强内部管理能力和产业链上下游的控制能力,实现产供销、人财物的全链路数据化管理,从而实现业务上的前后台高效运营和管理上的内外部掌控,实现优化资源配置,做到精准营销,进一步提升公司的市场竞争力。
286 0
解决方案应用实例 |搭载“业务+数据”双中台,贝泰妮实现高速奔跑
|
弹性计算 Kubernetes 监控
申通完美支撑“双11”亿级包裹背后的云基础设施
阿里云基础设施首次支撑申通全站业务系统,申通的双 11 平稳顺滑,展现了无限潜力。
7062 0
申通完美支撑“双11”亿级包裹背后的云基础设施
|
弹性计算 Kubernetes 监控
申通完美支撑“双11”——亿级包裹背后的云基础设施
亿级包裹洪峰过境,千万级订单毫秒级响应,系统稳如泰山。今年双11,申通的系统前所未有的流畅与平稳。
申通完美支撑“双11”——亿级包裹背后的云基础设施
|
新零售 数据可视化 双11
|
数据库 运维 双11
银泰100%云化在双11的表现
银泰通过3年多时间,将全部业务迁移上云,通过云计算近一步放大业务支撑能力,该文章主要讲解银泰上云的过程,如何进行技术思维转变?以及通过阿里云相关技术在双11的表现能力的变化有哪些?
1652 0
|
Kubernetes 双11 Docker
精品问答】蚂蚁双11核心技术:万级规模 K8s
1、Kubernetes 集群管理系统的设计模式是怎样的?https://developer.aliyun.com/ask/257839 2、Kubernetes 集群管理系统的核心组件集群终态保持器怎样?https://developer.
1534 0
|
数据库 双11 关系型数据库
双11核心系统100%上云 !阿里数据库处理峰值远超传统厂商
刚刚结束的天猫双11创下了两项新记录:交易额2684亿,订单峰值54.4万笔/秒,阿里巴巴集团CTO张建锋在当晚宣布,双11核心系统100%上云,背后作为数据核心支撑的自研数据库OceanBase和POLARDB每秒处理峰值都远远超越传统Oracle数据库。
1176 1