双十一912亿高频交易服务器不瘫痪之技术分析

2016-03-19 09:56| 作者: | 查看: 357 次

摘要: 微信伴侣解析:根据阿里巴巴集团披露的数据,截至11日24时,天猫“双十一”全天交易额达912.17亿元,其中无线交易额为626.42亿元,占比68.67%;而在零点开始的抢购阶

微信伴侣解析:根据阿里巴巴集团披露的数据,截至11日24时,天猫“双十一”全天交易额达912.17亿元,其中无线交易额为626.42亿元,占比68.67%;而在零点开始的抢购阶段里,系统交易创建峰值达到每秒钟14万笔,支付峰值达到每秒钟8.59万笔。

 
阿里巴巴能够稳定支撑这么大的高并发交易,没有因为用户的疯狂点击而陷入瘫痪——想想前阵子你们抢购iphone6s造成的官网登陆不上就知道这种事情多么容易出现了,所以这里难免还是要分析一下,阿里的服务器是怎么一回事。
 
1
 
.异地多活:
 
横跨1000公里的高可靠性和高可用性.
 
多活指的多活体,也就是说多个服务器(通常是数据中心里的集群)同时运行支撑业务运行,打个比方就是多个人同时完成一个大项目,目的是什么呢?
 
一是保证高可靠性——简单说不会说一个数据中心挂了,整个网站业务就停了,或者在主备(冷)模式下,主数据中心关了,最新数据没同步,普通的历史数据备份也就是算了(慢慢导),但这种高频、实时的交易业务信息怎么办?
 
二是保证高可用性——也就是说系统运行顺畅,客户快快的访问,少少的延时,按照阿里巴巴技术保障部研究员林昊的说法,1000公里以上的网络延迟来回一次是30毫秒左右,用户其实没有感受,但是当用户打开一个淘宝页面的时候,一次点击背后大概有100多次以上的后端交互,如果全部跨地域完成的话,就意味着页面的响应时间将增加3秒,不仅用户绝对会有明显感受,很多页面也会因为超时出不来了。
 
反映到“多活”工作中,就要解决掉距离带来的延时问题,以及多点写入时对外数据显示一致性的问题。怎么做?按照阿里大牛们的解释,大概是这样的思路,首先,在一个机房内完成一次页面访问的整个操作,因为没有跨域,所以基本不存在延时的问题;其次,把业务划成了各种各样的单元,按照用户维度、业务性质等等进行切分,单元封闭之后,让单元内的应用访问和数据的读写操作全部处于封闭状态,在一个单元里完成相应的数据处理事务,这样解决数据对外显示一致性的问题。
 
等一下?这看起来不还是单活的处理思路吗?嗯。所以阿里云当然还有最关键的一个核心技术产品,数据迁移服务DTS,实现异地数据中心的数据同步,解决掉多活体之间的数据一致问题。据说在2015年“双十一”中,所有数据同步控制在1秒以内!
 
所以,阿里云牛的地方,不仅在于实现了多活(不仅是2个哦),还在于异地多活,以及横跨1000公里的异地多活(这意味着在全国任意一个城市来部署同步协调支持数据中心了)。
 
2
 
.分布式关系数据库:
 
支付宝的秘密武器.
 
今年双十一,支付宝整个核心链路是运行在OceanBase上面的,数字呢,一个是上面提到的14万每秒的订单创建,8.59万笔每秒的支付,还有就是一天10TB左右的数据库写入量。
 
数字是不是看起来仍然已经无感?我们来说OceanBase,这个由阿里巴巴自主研发的中国首个具有自主知识产权的数据库,也是全球首个应用在金融业务的分布式关系数据库。
 
传统关系型数据库,比如Oracle或者MySQL功能已经很完善,但数据库本身不可扩展,随着数据量的增大和业务内容的丰富,需要拆库拆表,然后再进行访问路由,将相应的SQL解析路由到指定的数据库中,比如阿里就曾经研发出TDDL这个通用数据访问层,但随着数据量的一直增长,这种拆库拆表的做法对性能有着明显的影响。
 
而OceanBase相当于加持了扩展(Scalability)属性的关系型数据库。
 
 
 
传说中的OceanBase的架构
 
OceanBase的做法是保持相对稳定的主体数据(基准数据)不变,将把一段时间内的增删改等修改操作以增量形式记录下来,放在内存中处理。基准数据按照主键分段后保存在到多台机器(ChunkServer) 并且由于按主键分块连续存放,因此OceanBase按主键的范围查询对应着连续的磁盘读,十分高效;而由于增删改等动态数据相对较小,通常情况下,OceanBase把它保存在独立的服务器UpdateServer的内存中,这样极大地提高了系统写事务的性能,在修改冻结后,保存到SSD固态硬盘上释放内存空间。
 
其他组件中,MergeServer结合ChunkServer和UpdateServer,获得最新数据,实现数据一致性;而RootServer进行机器故障检测、负载平衡计算、负载迁移调度等工作。
 
问题来了,内存掉电,数据丢失咋办?
 
OceanBase有着可靠的数据库操作日志记录,如果出现掉电或故障,可以通过日志回访出来。这样,在内存里进行相应的数据查询、修改,然后定期把大量的数据跟增量的修改做合并,不停滚动的话数据库就一直更新,保证在内存里的数据永远是少量的,做到很高的性能。
 
OceanBase 2010年诞生,2014年支撑了10%的双11交易流量。今年6月,网商银行开业,底层数据库全部采用OceanBase,是第一家完全摆脱商业数据库的金融机构。
 
与传统数据库相比,OceanBase的系统维护,不需要昂贵的共享存储设备和高性能服务器,还能节省数据库软件的许可费,和常用的商业数据库相比,成本不到其一半。同时,分布式的系统,可以更好地应对双11这类大流量冲击:弹性能力可保证大促之前完成一键扩容、大促之后实现一键缩容。
 
据说,OceanBase也计划于明年通过阿里云的公共云计算平台对外界开放。
 
3
 
.混合云架构实践:
 
10000个阿里的河源.
 
回到我们开篇那句看起来似乎有些问题的话,为什么好好说着阿里巴巴的销售记录,特意转到阿里云的技术呢?是因为,根据介绍,今年双十一淘宝天猫核心交易链条和支付宝核心支付链条的部分流量,直接切换到阿里云的公共云计算平台上。通过将公共云和专有云无缝连接的模式——也就是大家熟知的混合云模式,全面支撑双十一。
 
按照阿里云总裁胡晓明的说法,阿里巴巴希望在自身最重要商业实践中,验证云计算的安全性、可靠性,向世界证明云计算的优势。也正是基于这种混合云模式,阿里巴巴能够充分利用云计算的弹性优势,随时调度资源。而在双十一之后,又能快速归还资源,避免高峰期过后的闲置浪费。
 
从以往的经验来看,无论是在余额宝、花呗的诞生,还是OceanBase的诞生等等,都是阿里巴巴被现实需求及不给力的合作环境倒逼出来的业务创新。如果不去做业务创新,新的业务需求无法满足,或者无法以符合成本效率的条件满足,所以阿里巴巴、阿里云开发出一个个具有核心竞争力的突破性的技术。
 
从目前的情况来看,阿里云正在把这些技术一个个开放出来,供更多的企业使用,如胡晓明强调的,“这一混合云架构完全基于阿里云官网在售的标准化产品搭建的。也就是说,你通过这些标准化的产品,也可以搭建一个像淘宝、天猫这样的万亿级企业应用,满足任何极端的业务挑战。”
 
为了更好的支持企业使用阿里云的各种技术,阿里云还推出了“一键建站技术”,在基础设施具备的条件下,通过阿里自研的自动化软件,将中间件、数据库、商品交易系统、商品展示系统等上百个电商核心系统,像搭积木一样部署完成。整个过程一键完成,基本无需人工干预,所需时间不到90分钟——即使像今年的淘宝、天猫交易单元,也是在90分钟之内自动化完成的。
 

所以,如果企业能够采用混合云的模式,将核心系统运行在云里,使用阿里云开发出来的各种能力,快速发展成另一个阿里巴巴,也不能说是一种奢望。从这个角度看,这次的双十一混合云架构实践,是未来中国更多巨型企业成型的河源,也是大大有可能的。


微信伴侣,对阿里表示拜服~


Copyright © 2013-2016 微信伴侣 | www.Wxbl.com

微伴·真诚相伴到永远~