天猫“双11”成交额实时统计技术详解

阿里巴巴资深技术专家莫问在2017年12月20日云栖大会北京峰会上做了题为“Apache Flink技术进阶”的主题演讲。Apache Flink作为流式计算引擎,支持了“双十一对的”实时计算,已经被国内外的公司使用。其中关于“Flink的技术特点”、“阿里巴巴的Flink版本——Blink”以及“Blink在实际场景中的应用” 等经验首次对外详细剖析,很有价值。
以下为视频内容整理:

Apache Flink介绍
Flink是Storm之后出现的第二个纯流式计算引擎,其特点是支持毫秒级的延迟,同时支持 “至少一次”语义的保证。目前在阿里巴巴的“双十一”上面支持了每秒四亿次的计算。

Flink提供了不同的抽象级别来开发流/批处理应用程序:

  1. 最下面一层是有状态的分布式流式执行引擎。
  2. 第二层是core APIs,包括DataStream/DataSet API。DataStream API是针对流式的输入,比如队列、日志等;DataSet API是针对有长度的数据源,比如一个文件。
  3. 第三层提供了基于DSL的table API。这层把所有的数据源都抽象成table,支持类SQL的开发语言,可以用Java来编写。
  4. 第四层是高级SQL语言。
    Flink相对于Storm来说有许多特性。Flink第一个特性是支持有状态的计算。 Flink内置了状态管理,可以保证高性能计算和数据的一致性。有了状态之后,Flink就可以提供“恰好一次”语义。如果业务场景接受,也可以支持“至少一次”语义。state也支持checkpoint,recovery,Upgrade,version等。

Flink的第二个特性就是在流里面加window。因为流是一条一条来处理记录,但是在很多场景上是远远不够的。因为业务可能需要把最近一段时间的数据攒起来做一次聚合,并做全局性的判断才能得到结论。window功能很好的解决了这个问题。Flink支持两种类型的window。一种是时间驱动,比如最近30秒或者每隔30秒取一次数据。一种是数据驱动,比如最近1000条或者是每隔1000条取一次。常见的Window有三种类型:Sliding window(没有重叠),Tumbling window(有重叠),Session window(基于session)

使用window之后,在分布式系统中就很难保证所有的数据在源头产生数据的顺序和接收数据的顺序保持一致,会出现乱序的问题。Flink采用了标准的乱序处理方案——watermark技术。这个技术是在源头定期发送watermark,保证之前的数据顺利到达。watermark到达之后就触发window,进行window的计算。有了watermark和window,可以在流计算里面根据时序关系,实施更为复杂的计算。

Flink中保证状态一致性是使用的chandy-lamport算法,这个算法核心的思想就是:定期对流进行检查,并将计算状态持久化到存储里面。当系统奔溃的时候,会从最近一次检查点中根据状态来恢复,达到最终的结果。这个过程是在流里面插入一个barrier(特殊消息),并在源数据处开始广播,每个节点收到上游的barrier,会对barrier对齐并对做状态持久化,然后将barrier继续往下广播。当流把barrier从源头广播到最后节点的时候,就完成了checkpoint和状态持久化。
同步执行checkpoint会阻碍流的计算,所以采用异步checkpoint,这样也加快了checkpoint的对齐。对checkpoint的增量做持久化,就会减少对I/O的使用。由于 Storm 会对每条消息进行ACK,Flink 是基于一批消息做的检查点,这样可以保证对数据有一个更好的吞吐和更好的时延。这也是Flink和Storm最大的区别。

Flink的典型作业场景是处理实时数据。源头是一个kafka队列,包含所有的实时的数据流。Flink有三种算子角色,数据流分别在这三种算子中进行运算。第一种是Source(负责输入数据,记录kafka里面的offset并做持久化);第二个就是中间的算子就是operator,一是就做map,二是根据同key做聚合,并产生counter。Offset和counter会存储到状态里面。第三个是sink,是负责输出并做快照。
阿里巴巴对Flink的贡献
Blink(alibaba Flink version)是依托阿里巴巴大规模生产环境和实际需求对Flink架构进行多项改进以及更多的扩展功能的版本。Blink全面兼容Flink的API与开源社区无缝对接。Blink团队目前向Flink社区共享了超过300个issue,对多项关键架构和SQL改进。团队培养出了5名在社区具备良好影响力的Flink committer。Blink团队连续两年赞助Flink forward大会,并且每次都会在现场分享。
Blink基于Flink进行了5个重大改造:
1. 对Flink部署和进程模型的改造
以前Flink是一个Standalone部署的架构,它的进程模型和分布式模型比较小。Blink团队按照分布式进程模型的调度,也使其能继续在Yarn和Mesos上面运行,对其计算和资源的调度进行了解耦,改进了Flink单master规模受限的架构。
2. 采用异步的I/O模型设计
在流式计算过程中,如果一个流被卡住,那么整个流式计算就会被卡住,这是分布式、高并发场景中的障碍。引入异步I/O的模型,使得所有Flink的算子,都可以异步访问外部的MySQL。短暂的抖动,也不会影响整个流的运行,可以大幅提升CPU的利用率。
3. 改善checkpoint机制
因为checkpoint是Flink的最大的一个特点,所以checkpoint的性能尤为关键。如果它的做的不好,就会影响主流程的处理。虽然数据规模非常大,但是每分钟更新的数据只有百分之一,做增量checkpoint,会大大减少开销。
4. failover的优化
在大规模场景下,实时计算的一个作业会有上千个并发,所以一旦failover,恢复需要很大成本。Blink对其做了改善。
5. 在网络层的优化
在流式计算中,网络层的性能非常关键。上下流的计算,都需要网络层去shuffle。Blink优化了shuffle的性能,使网络性能大大提升。
阿里巴巴对Flink的SQL也做了很多的贡献,使用的是流式SQL,不是传统的bash SQL。

Flink在阿里巴巴的应用

Flink流式计算架构几乎支持了阿里巴巴的所有场景,包括天猫,淘宝,飞猪,菜鸟,搜索广告,安全等等。
Flink在淘宝中的应用案例:
天猫双11成交额实时统计

大家对“双十一”的成交量印象深刻,这个成交量就是通过实时计算出来的。这个流程包括用户下单、将日志传到后台、读取日志、聚合计算、统计并输出结果等。为保证其正确性,在全天不能有任何的抖动。这个过程中每秒钟进行峰值为四亿次的运算,也是Flink目前最大的应用场景。
作为一家数据驱动的公司,需要实时监测所有的数据。实时计算平台会处理这些数据,并呈现给运营人员和管理层,方便他们基于这些数据去做决策。
淘宝搜索商品实时更新

淘宝会根据用户的搜索进行推荐。搜索引擎和推荐引擎的数据需要实时的更新。任何一次商品的变化和商家的变化,都会同步到数据的仓库里面。根据商家信息,类目信息,促销信息等,做联合并产生索引,生成到推荐引擎或者搜索引擎里面,进而生成推荐和搜索结果,并在用户的搜索页面上显示。任何一次商品、卖家、促销信息,用户行为的变化,都会影响到搜索的结果和展示,整个信息流的实时变化量非常大。

时间: 2024-09-22 14:45:30

天猫“双11”成交额实时统计技术详解的相关文章

转一篇:Hyper-V和VMware的高可用实时迁移技术详解

ESX里以集群的ha.drs.dpm功能实现 HYPER-V里以集群+共享存储实现. ~~~~~~~~~~ 微软公司的Hyper-V虚拟化管理程序一经面世就引发了业界的普遍关注.本文意在对Hyper-V的高可用性和快速迁移能力与VMware旗下的VMotion的实时迁移能力进行对比.在进行详细分析之前,我们还需要了解为什么高可用性在虚拟化应用中起着绝对关键的作用. 虚拟化是一项令人敬畏的技术.在减少企业的总体拥有成本方面优势巨大,其中最显著的优势就是节省了能耗.以一座10,000台服务器配置的数

阿里CEO张勇:今年天猫双11是否成功有三个判断标准

天猫双11全球狂欢节进入冲刺阶段.今天(11月6日),阿里巴巴CEO张勇巡视双11项目组,连发三问:给用户的红包发了么?用户对目前双11的各项优惠措施和回馈实惠爽了么?平台上的商家对天猫的平台服务和系统支持感到满意了么? 在张勇看来,判断今年天猫双11是否成功的三个基础标准就是: 消费者收获消费的快乐并最终获得实惠: 平台上的商家通过这个节庆和消费者达成互动和交流,从而实现业务和消费者之间的双赢: 阿里巴巴平台通过对商家和消费者的优质服务获得成长. 在双11预热环节,天猫已经启动亿元红包回馈.各

2017天猫双11,1682亿背后的阿里绝密50+技术(长图下载)

2017天猫双11的交易额定格在1682亿.但对技术的追求,却从未定格. 11秒交易额破亿,28秒破10亿,3分01秒破百亿,40分12秒破500亿,9小时破1000亿--2017年11月11日的数据一定会铭记在历史中.交易峰值32.5万/秒,支付峰值25.6万/秒,比去年增长超1.1倍,再次刷新全球纪录.同时诞生的还有数据库处理峰值,4200万次/秒. 数字的背后是技术.在<零点之战!探访阿里巴巴8大技术专家,提前揭秘2017双11关键技术>中,我们曾直接探秘阿里云10+技术,包含云存储.视

新科技新文娱:从天猫双11看优酷背后的产品技术升级

9小时成交破千亿,全天交易额1682亿!天猫双11购物狂欢节再度创造历史,成就了一次前所未有的全球所有商业力量的全社会大协同,彰显出科技与大数据的强大驱动力. 在"买买买"之外,阿里大文娱全面参战,让今年天猫双11和猫晚超越了商业与消费的范畴,呈现了一场全球数亿人共享的文化娱乐盛宴,更成为文娱黑科技集中亮相的舞台. 作为阿里大文娱核心引擎的优酷,经过一年整合,融入阿里大生态,为今年天猫双11输送了更多的快乐能量,实现了真正意义上贯穿生态的大联动.作为网络独播平台,优酷猫晚在线观看直播总

看懂“天猫双11”支付技术的前世今生,就看懂新商业的变革基础

今年的"天猫双11支付技术沟通会"近日在杭州召开,蚂蚁金服副总裁胡喜等出席了沟通会,并对天猫双11支付技术进行了展示和解说. 过去两年,围绕天猫双11,蚂蚁金服对外强调较多的是支付保障能力,以及去年在消费金融场景下增加了很多新动作.而今年的情况是怎样呢?与10月中旬刚结束不久的云栖大会蚂蚁金服ATEC金融科技开放峰会上的主题相呼应,除了"未问先答"这样的智能客服黑科技,蚂蚁金服副总裁胡喜再次强调了金融科技基础技术升级. 参加沟通会前雷锋网AI金融评论很好奇,为什么天

阿里双11成交额912亿:天猫国际与农村淘宝成亮点

A5交易A5任务SEO诊断站长团购A5联盟 农村淘宝 凤凰科技讯 11月12日消息,2015天猫双11全球狂欢节落下帷幕,全天交易额达912.17亿元,其中无线交易额为626.42亿元,无线成交占比68.67%. 开场1分12秒交易额破10亿,12分28秒破100亿,33分53秒破200亿--而去年破百亿的时间则超过了38分钟.双11尚未过半,11小时50分之后,交易额已经超过571亿,打破了2014年双11全天交易额纪录. 阿里巴巴集团董事局主席马云表示:"双11是一年一度的消费者狂欢节,也是

揭秘天猫双11晚会与狂欢城背后的技术

4月21日,天猫互动的技术专家在QCon大会北京站深度揭秘了双11晚会和狂欢城的核心技术方案,引发业界的极大关注. 2015年天猫联合湖南卫视联合打造了一场最具互联网范儿的双11晚会互动,如此大流量的直播互动需要重点考虑的是系统的稳定性,并尽可能减少依赖.因此,天猫互动的技术团队建立非常多的容错容灾机制.凭借5年的双11狂欢城技术经验,天猫互动技术团队使用了场景编辑器.智能加载.多模式渲染等措施,为用户提供了上佳的体验和性能. 除了技术细节之外,分享中还提到,电商互动业务的三大特点:1.要足够吸

【双11背后的技术】双11晚会背后的技术

选自<不一样的技术创新--阿里巴巴2016双11背后的技术>,全书目录:https://yq.aliyun.com/articles/68637 本文作者:邵雍   回顾2015年在鸟巢举行的第一届双11晚会,我们可以称之为"全民互动"的晚会.因为不止是现场的几千位观众,全国所有在电视机面前的观众朋友,都可以拿起手机,打开天猫客户端或淘宝客户端,参与到晚会现场的各个明星互动游戏中来,进行红黑押宝,获胜的人,还能抢到一元商品. 而刚刚过去的,在深圳大运中心的2016第二届双1

亲历天猫“双11”疯狂24小时

摘要: 双11不再只是电子商务的独角戏,阿里巴巴鼓动的电子商务营销日走到第五个年头终于成为全互联网的狂欢节日,视频企业.互联网硬件企业.搜索企业.婚恋网站.垂直门户.社交工 "双11"不再只是电子商务的独角戏,阿里巴巴鼓动的电子商务营销日走到第五个年头终于成为全互联网的狂欢节日,视频企业.互联网硬件企业.搜索企业.婚恋网站.垂直门户.社交工具--蓬勃而出的营销欲望不让电商独乐. 非阿里电商差异营销 如果说阿里"双11"是打着光棍节旗号的半价大甩卖(绝大部分产品是否在