阿里云飞天发布时刻,领先大模型限免,超7000万 tokens免费体验 了解详情
写点什么

每日 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:0012333

评论

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

软件测试/测试开发/岗位内推丨字节跳动岗位开放

测试人

软件测试

数据资产入表“倒计时”,企业该如何抓住红利?

用友BIP

数据资产

2024提升计划|优秀程序员的10大共性特征

飞算JavaAI开发助手

程序员 软件开发 代码 测试 单元测试 构架

助力 AI 技术共享,蚂蚁开源又一核心技术“因果学习系统 OpenASCE”

可信AI进展

人工智能 机器学习 开源

探索大模型在端侧应用的新形态

百度开发者中心

人工智能 图像识别 大模型

数据如何驱动AI大模型的竞争优势

百度开发者中心

人工智能 AI 大模型

探索跨语言、跨模态、跨任务的大模型驱动应用生态繁荣

百度开发者中心

人工智能 大模型

2023 CSIG青年科学家会议丨多模态大模型时代下的文档图像处理

热爱编程的小白白

Zoho 2023:种长期主义的因,越经济下行的谷

ToB行业头条

软件测试开发/全日制/测试管理丨Web 兼容性测试

测试人

软件测试 测试开发

请重视你的简历

老张

面试 简历优化 简历

新特性速览!Sermant重磅更新,1.3.0 release版本发布

华为云开源

微服务治理 sermant 字节码增强框架

身为程序员,你很有必要了解一下提效工具“JNPF”

互联网工科生

程序员 软件开发 低代码 JNPF

精彩回顾 | 《国产数据库共话未来趋势》技术沙龙上海站成功举办!

阿里云数据库开源

数据库 阿里云 数据管理 国产数据库 polarDB

大语言模型训练数据常见的4种处理方法

不在线第一只蜗牛

简单聊聊数据库可以做什么,有什么用?

行云管家

数据库 云计算 大数据

服务器里面打开浏览器访问不了会是什么原因

德迅云安全杨德俊

揭秘加密货币周期:如何通过顶级代币指标洞察市场变化

Footprint Analytics

区块链 加密货币

淘宝/天猫商品详情实时数据API技术实现

Noah

AI时代我们的IT团队架构应该如何应变

Onegun

人工智能 AI 团队组织

快手商品详情数据接口(ks.item_get)丨快手API接口

tbapi

快手商品详情数据接口 快手API接口 快手商品数据接口 快手数据采集

软件测试开发/全日制/测试管理丨测试左移和测试右移

测试人

软件测试 测试开发

提升测试自动化:ForEach 循环在API测试中的高级策略

Apifox

测试 自动化测试 foreach Apifox 测试工具

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