写点什么

每日 24 亿事件处理:Airbnb 的 Riverbed 技术解析

  • 2023-10-18
    北京
  • 本文字数:934 字

    阅读完需:约 3 分钟

大小:464.63K时长:02:38
每日24亿事件处理:Airbnb的Riverbed技术解析

Airbnb开发的Riverbed是一个Lambda风格的数据框架,用于生成和管理分布式物化视图。该框架支持 50 多个涉及重度数据读取的应用场景,在这些场景中,数据来自 Airbnb 面向服务架构(SOA)平台的多个数据源。它分别使用 Apache Kafka 和 Apache Spark 作为在线和离线处理组件。


Airbnb 观察发现,一些跨多个不同数据存储的复杂查询是导致该平台主要功能出现延迟的罪魁祸首。开发团队不能使用数据库提供的标准的物化视图,因为计算物化视图所需的数据不在单个数据库中。


开发团队尝试使用一种技术来创建分布式物化视图,该技术使用了变更数据捕获(CDC)、流处理和专门用来存储最终结果的数据库。他们仔细权衡了数据处理架构:


Lambda 和 Kappa 是两种实时数据处理架构。Lambda 结合了批处理和实时处理,可以有效地处理大数据量,而 Kappa 仅专注于流处理。Kappa 的简单性提供了更好的可维护性,但在实现回填机制和确保数据一致性方面存在挑战,特别是对于乱序事件。


Riverbed 框架采用了 Lambda 架构,并提供了一种声明式的方式,使用GraphQL为在线(实时事件)和离线(数据回填)组件定义数据查询和计算逻辑。该框架负责并发、版本控制和数据正确性保证,以及与基础设施组件的集成。



Riverbed 的流式处理(来源:Airbnb工程博客)


对于实时处理,Riverbed 使用Apache Kafka消费数据源发出的变更数据捕获(CDC)事件来进行消息传递。来自 CDC 的事件通过执行用 GraphQL 定义的聚合逻辑来更新物化视图,结果文档存储在物化视图数据库中。为了提高效率,处理是高度并行化和批量化的。


流式管道避免了竞态条件,因为 CDC 事件在 Apache Kafka 中基于物化视图文档的标识符被重新分区,因此对物化视图的更新是顺序完成的。此外,在在线(实时)和离线(批处理)处理之间使用乐观并发控制来避免并发写和潜在的数据不一致。



Riverbed 的批处理(来源:Airbnb工程博客)


Riverbed 支持数据回填和协调,以防出现因丢失 CDC 事件导致的实时处理问题。这一部分使用Apache Spark来处理存储每日快照的数据仓库中的数据。该框架基于在 Riverbed 中配置的 GraphQL 定义生成Spark SQL


Riverbed 目前每天处理 24 亿个事件,写入 3.5 亿个文档,处理与 Airbnb 的支付、搜索、评论、行程和内部产品等功能相关的 50 多个物化视图。


原文链接

https://www.infoq.com/news/2023/10/airbnb-riverbed-introduction/

2023-10-18 08:0012227

评论

发布
暂无评论
发现更多内容

4天如何完爆Kafka源码核心流程!

古月木易

kafka

架构师训练营-作业-1】食堂就餐卡系统设计

superman

学习 极客大学架构师训练营

【架构师训练营】第1周-作业-食堂就餐卡系统

芥末

极客大学架构师训练营

架构师培训-01食堂就餐卡系统设计文档

刘敏

架构师训练营第一周学习总结

whiter

极客大学架构师训练营

食堂就餐卡系统设计(作业版)

Jerry Tse

极客大学架构师训练营 作业

4天如何完爆Kafka源码核心流程!

奈学教育

kafka

食堂就餐卡系统设计

互金从业者X

食堂就餐卡系统设计

魔曦

极客大学架构师训练营

架构师训练营第01周——总结

李伟

极客大学架构师训练营

第一周作业

东哥

极客大学架构师训练营

食堂就餐卡系统设计

架构设计 极客大学架构师训练营

一味的坚持,或许只是徒劳

山楂大卷

逻辑思维 职业成长 工作体会

【总结】第一周架构师如何做架构

chengjing

UML 体验(就餐卡系统设计)

陈皮

食堂就餐卡系统架构设计文档

小叶

架构设计

第一周命题作业

AspYc

免费P7架构师直播课!技术人员如何提升职场技能?

古月木易

架构师

你还在为 TCP 重传、滑动窗口、流量控制、拥塞控制发愁吗?看完图解就不愁了

小林coding

TCP 计算机网络 网络协议

架构师是什么?

芥末

极客大学架构师训练营

作业1

annie

极客大学架构师训练营

免费P7架构师直播课!技术人员如何提升职场技能?

奈学教育

架构师

架构师训练营-第一课作业-20200610-食堂就餐卡系统

👑👑merlan

架构 作业

01-kubernetes安装部署(手动)

绿星雪碧

Kubernetes etcd flannel

第一周学习总结

AspYc

第一周学习总结

小海豚

学习

被迫重构代码,这次我干掉了 if-else

程序员小富

如何成为一个架构师?

逍遥乐天

极客大学架构师训练营

While语句

Hello

食堂就餐卡系统设计

小海豚

学习 食堂就餐卡系统设计

写作的几点建议:面对卡文,写别人的题目,栩栩如生的写作

董一凡

写作

每日24亿事件处理:Airbnb的Riverbed技术解析_业务架构_Rafal Gancarz_InfoQ精选文章