Twitter如何改进4000亿事件实时处理架构?
创始人
2024-05-25 03:45:30
0

原标题:Twitter如何改进4000亿事件实时处理架构?

背景

Twitter每日需实时处理高达4000亿的事件,并生成PB级的数据。这些数据主要来源于分布式数据库、Kafka以及Twitter事件总线等多种事件源。

接下来,我们将深入探讨Twitter在事件处理方面的演变,具体包括以下方面:

  • 回顾Twitter过去的事件处理方式及其存在的问题
  • 分析促使Twitter进行架构迁移的业务需求和客户影响
  • 详细介绍新架构的设计与实施
  • 对比新旧架构的性能差异

在处理事件方面,Twitter依赖一系列内部工具,例如:

  • Scalding用于批量处理
  • Heron是流媒体引擎
  • TimeSeriesAggregator(TSAR)用于批处理和实时处理

为了更好地理解这些工具的作用,我们先简要介绍它们:

1.Scalding

Scalding是一个Scala库,能够轻松定义Hadoop MapReduce作业。Scalding通过Cascading(一个Java库),抽象出对底层Hadoop细节的处理,并提供了与Scala的紧密集成,使得MapReduce作业的开发更为高效。

2.Heron

Apache Heron是Twitter开发的流处理引擎,旨在处理大规模数据(PB级)、提升开发效率并简化调试过程。

在Heron中,流处理应用被称为拓扑,它是由表示数据计算元素的节点、表示元素之间流动数据流的边为基础构建的有向无环图。

有两种类型的节点:

  • Spouts:它们连接到数据源并将数据注入流中
  • Bolts:它们处理传入的数据并发出数据

3.TimeSeriesAggregator

Twitter 的数据工程团队面临着每天批量实时处理数十亿个事件的挑战。TSAR是一个强大的、可扩展的实时事件时间序列聚合框架,主要负责监控参与度,如聚合推文的互动数据,并按多种维度(如设备、参与类型等)进行细分。

让我们从宏观角度来认识Twitter的运作方式。Twitter的所有功能均由微服务(其中包括遍布全球的10万多个实例)支持。微服务负责生成事件,这些事件会被发送到Meta基于开源项目构建的事件聚合层,经过事件聚合层的处理,被分组、聚合,并存储在HDFS中。随后,这些事件数据经过进一步处理、格式转换和重新压缩,形成良好的数据集。

旧架构

Twitter的旧架构基于lambda架构,包括批处理层、速度层和服务层。批处理层主要处理客户端生成的日志,经过事件处理后存储在Hadoop分布式文件系统(HDFS)上。Twitter还构建了一系列扩展管道,用于预处理原始日志,并将其导入Summingbird平台作为离线数据源。速度层则负责处理Kafka主题(topic)中的实时组件源。

数据处理完毕后,批处理数据存储在Manhattan分布式系统中,而实时数据则被缓存于Twitter自有的分布式缓存Nighthawk中。TSAR系统(例如查询缓存和数据库的TSAR查询服务)是服务层的构成部分之一。

Twitter在三个不同的数据中心部署了实时管道和查询服务。为了降低批处理计算成本,Twitter选择在一个数据中心运行批处理管道,并将数据复制到其他两个数据中心。

那么,为何实时数据会选择存储在缓存中而非数据库中呢?

旧架构的挑战

旧架构面临的挑战不容忽视。让我们通过一个具体案例来理解:

设想FIFA世界杯这样的大型赛事期间,推文源开始向推文拓扑发送大量事件。若解析推文的Bolts无法及时处理这些事件,拓扑内部将出现背压。系统长时间处于背压情况时,Heron Bolts会积累Spout lag,此系统延迟较高。Twitter观察到,当这种情况发生时,拓扑滞后往往需要很长时间才能下降。

过去,团队通过重启Heron容器以恢复流处理来解决这一问题。但这种做法可能导致事件丢失,进而导致缓存中聚合计数不准确。

Twitter有多个繁重的计算管道,以处理PB级的数据。管道每小时运行一次,将数据同步至Manhattan数据库。若同步作业超时而下一个作业已开始,可能导致系统背压增加,甚至数据丢失。

TSAR查询服务整合了Manhattan数据库与缓存服务,向客户端提供数据支持。由于实时数据可能会丢失,TSAR查询服务提供给客户的指标也可能失真。

是什么促使Twitter解决这些问题呢?以下是可能的因素:

  • Twitter的广告服务是其主要的收入模式之一,性能下降将直接影响其商业模式。
  • Twitter提供各种数据产品服务来检索有关印象和参与度指标的信息,数据不准确将影响这些服务。
  • 另外,批处理作业导致从事件创建到可用存在数小时的时延,这意味着客户执行的数据分析或其他操作将不会拥有最新数据,可能会滞后几个小时。

所以,如果想要根据用户生成的事件更新用户的时间线,或者根据用户与Twitter系统的交互方式对用户行为进行分析,客户都需要等待批处理完成。

新架构

新架构建立于Twitter数据中心服务和Google Cloud平台之上。Twitter创建了一个事件处理管道,将Kafka主题转换为pub子主题,并将其发送至Google Cloud。在Google Cloud上,流数据流作业执行实时聚合,并将数据存入BigTable。

服务层方面,Twitter采用了一个LDC查询服务(前端位于Twitter数据中心,后端位于BigTable及Bigquery)。整个系统能够以低延迟(约10毫秒)的状态流式处理每秒数百万事件,并在高流量期间轻松扩展。

新架构不仅降低了批处理管道的建设成本,还实现了实时聚合的高精度和稳定的低延迟。此外,Twitter无需在多个数据中心维护不同的实时事件聚合。

性能比较

与旧架构中的Heron拓扑相比,新架构提供了更低的延迟和更高的吞吐量,同时还能处理后期事件计数,以保证在实时聚合时不再丢失事件。此外,相较旧架构,新架构中没有批处理组件,简化了设计并降低了计算成本。

总结

通过将基于 TSAR 构建的旧架构迁移到 Twitter 数据中心和谷歌云平台上的混合架构,Twitter能够实时处理数十亿个事件,并实现低延迟、高准确性、高稳定性、架构简单化,同时降低工程师的运营成本。

>>>>参考资料

  • Log Events @ Twitter: Challenges of Handling Billions of Events per Minute | Lohit Vijayarenu
  • https://youtu.be/EXMt_t_uWGE
  • Processing billions of events in real time at Twitter
  • https://blog.x.com/engineering/en_us/topics/infrastructure/2021/processing-billions-of-events-in-real-time-at-twitter-#below

作者丨Mayank Sharma 编译丨onehunnit

来源丨medium.com/@mayank.sharma2796/how-twitter-improved-the-processing-of-400-billion-events-621b3456c9dc

*本文为dbaplus社群编译整理,如需转载请取得授权并标明出处!欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

相关内容

四川广元:中美学者漫步昭化...
3月25日,30余位中美学者、企业代表走进位于四川省广元市的昭化古...
2026-03-31 10:48:59
原创 ...
明朝,作为最后一个由汉族统治的朝代,自开国皇帝朱元璋起,就带有鲜明...
2026-03-31 10:47:06
原创 ...
从公元1368年,明太祖朱元璋在应天南郊的天坛举行登极大典,正式即...
2026-03-31 10:46:41
原创 ...
杨家将与呼家将的故事,历来在民间传颂,尤其是《呼延庆打擂》一段,俨...
2026-03-31 10:46:14
原创 ...
提起诃额仑,很多人可能对她的名字有些陌生,但提到孝庄太后,却能引起...
2026-03-31 10:45:38
原创 ...
当我们翻开历史的篇章,总会被一个耐人寻味的现象吸引:明朝的皇帝往往...
2026-03-31 10:45:09
白宫:特朗普访华前,将安排...
据凤凰卫视报道,美国白宫3月30日表示,预计总统特朗普5月访华前夕...
2026-03-31 10:44:43
原创 ...
1644年春,北京城外马蹄声震天。 李自成大军从陕西杀来,沿途饥民...
2026-03-31 10:43:44
原创 ...
公元669年,大唐大灾无情、哀鸿遍野。关键是这一年年底,李世民给李...
2026-03-31 10:43:14

热门资讯

伊朗军方:在波斯湾击中以色列集... 伊朗伊斯兰革命卫队今天(3月31日)发布公告称,当天黎明,革命卫队海军发起第88波“真实承诺4”行动...
沉浸式演艺+非标剧场,如何1+... 作者:徐雪霏 近年来,天津的演艺市场正经历一场深刻的空间革新,“演艺新空间”“非标剧场”如雨后春笋般...
霍尔木兹海峡再次关闭,全球能源... 伊朗想让我当伊朗的最高领袖,我拒绝了……、从此以后,霍尔木兹海峡就得叫特朗普海峡了……诸如此类的话,...
蒋万安谈郑丽文访问大陆:乐见,... 据凤凰卫视报道,国民党主席郑丽文证实受到大陆邀请将在4月初率团出访,对此台北市长蒋万安表示乐见两岸交...
半场战报:奥地利1-0加纳,萨... 北京时间3月28日国际友谊赛,奥地利对阵加纳。奥地利萨比策破门。半场战罢,场上比分奥地利 1-0 加...
福州开展第二批专精特新白名单企... 福州新闻网3月31日讯(记者 颜澜萍)近日,福州开展第二批专精特新白名单企业遴选申报工作,进一步引导...
福建省公拍平台首场拍卖落槌 成... 福州新闻网3月31日讯(记者 颜澜萍)3月30日上午,在福建省财政厅指导下,由福建省大数据集团所属福...
如何挑选优质的陶瓷柴窑茶具批发... 陶瓷柴窑茶具的魅力 陶瓷柴窑茶具具有独特魅力,柴窑烧制的茶具在色泽、质地等方面都别具一格。柴窑烧制过...
半场战报:俄罗斯2-1尼加拉瓜 北京时间3月28日国际友谊赛,俄罗斯对阵尼加拉瓜。俄罗斯萨杜拉耶夫破门。尼加拉瓜奥斯卡-阿塞韦多破门...
除了分红公告出错,交通银行这项... 交通银行分红方案公告将“每10股”错写成了“每股”,该行2025年年报中关于资产减值损失的表述也令人...