写点什么

Agoda 通过自定义的双向同步功能来处理跨数据中心的 Kafka 消费者故障转移

作者:Craig Risi

  • 2025-08-17
    北京
  • 本文字数:1654 字

    阅读完需:约 5 分钟

大小:827.45K时长:04:42
Agoda通过自定义的双向同步功能来处理跨数据中心的Kafka消费者故障转移

Agoda 的工程团队最近分享了他们定制的解决方案,该方案旨在跨多个内部数据中心维护关键的 Kafka 消费者操作,确保即使在中断期间也能保持业务连续性。Agoda 每天处理超过 3 万亿条 Kafka 记录,需要一种故障转移机制,可以无缝地在不同的Kafka集群之间转移消费者工作负载,同时保留处理状态,避免数据重复或丢失。

 

Agoda 的工程师没有依赖于 Kafka 的扩展集群,这由于地理延迟而不切实际,也没有依赖于缺乏双向偏移同步的MirrorMaker 2,而是开发了一个增强系统,扩展了 MirrorMaker 2 以支持可靠的故障转移、无缝的故障恢复和持久的偏移转换。他们的方法涉及在集群之间始终开启消费者组偏移和OffsetSync记录的双向同步。当消费者组在一个数据中心提交偏移时,该偏移量会在另一个集群中使用围绕Kafka Connect和 OffsetSync 机制构建的自定义同步服务进行转换和更新。

 

在故障转移场景中,由于转换和复制的偏移,辅助集群能够从原始位置消费的确切点接管处理。当主数据中心恢复时,系统支持故障恢复:消费者偏移同步回原始集群,确保连续性,不会重复消息或丢失进度。为了避免循环偏移更新,同步服务在应用更新之前检查已经同步的状态。

 

该系统还包括强大的可观测性组件:专用的 Grafana 仪表板跟踪诸如复制延迟、同步失败和消费者滞后等指标,以便及早发现异常并在操作影响发生之前进行干预。这种实时的可见性支持跨多个数据中心的 Kafka 部署的可靠性。

 

定制的故障转移和故障恢复架构反映了一个日益增长的趋势,即在多数据中心规模上进行工程的组织不能依赖于 Kafka 的默认功能。根据 Agoda 的说法,这个系统为服务连续性、精确的处理语义和大规模的灾难恢复能力提供了必要的弹性。这种方法突出了对运维严谨性和设计灵活性的战略承诺,使 Agoda 的数据平台能够在不妥协正确性或吞吐量的情况下承受基础设施中断。

 

在 Instagram 上, Agoda发布了他们的 Kafka 基础设施每天处理超过 3 万亿记录的帖子,并指出:

 

“为了在数据中心中断期间保持业务连续性,我们必须能够跨集群转移 Kafka 消费者。”

 

其他拥有大规模流式平台的公司已经以与 Agoda 的自定义解决方案相似的方式解决了多数据中心 Kafka 故障转移的挑战,尽管它们的实现因运维约束和优先事项而异。

 

MirrorMaker 2 是 Kafka 内置的跨集群复制工具。默认情况下,它支持单向复制,将数据从主集群复制到备集群。虽然这适用于主动-被动故障转移场景,但它缺乏对双向偏移同步和无缝故障恢复的原生支持。如果没有自定义扩展,MM2 无法在镜像主题之间转换消费者偏移,这意味着消费者将不得不重新处理消息,或在故障转移后面临数据丢失的风险。

 

Netflix在 Kafka 上运行多区域 active-active 系统,用于事件和微服务通信。他们的解决方案利用了基于 MirrorMaker(pre-MM2)上的自定义工具来在区域之间复制数据。对于故障转移,Netflix 集成了它的控制平面(Zuul、Eureka),以重定向流量并在其他区域恢复消费者。虽然 Agoda 的解决方案自动化了偏移转换,但 Netflix 历来优先考虑幂等事件处理和重放,以处理故障恢复场景。

 

Uber的流式堆栈(uChannel,Apache Kafka)支持像 Uber 外卖和乘车调度这样的全球服务。他们实施了地理分布式复制,但通常依赖于异步故障转移模型。与 Agoda 类似,Uber 避免跨区域同步集群,并使用本地偏移与检查点来在灾难恢复场景中恢复消费。他们的模型强调按地理位置划分工作负载,并在故障恢复期间从检查点重放,而不是持续的双向同步。

 

Confluent 的商业工具扩展了MM2,提供了更高级的功能,如更好的主题自动创建和模式复制。然而,与 MM2 类似,它本身并没有解决双向故障转移的偏移转换问题。此外,企业在采用 Confluent 的解决方案时可能会面临供应商锁定和许可成本。

 

Agoda 的设计需要持续的偏移同步和可观测性工具(用于同步延迟和失败率的 Grafana 仪表盘)。与简单的单向容灾设置相比,这增加了复杂性,但为关键的高容量工作负载提供了更高的可靠性和正确性。其他优先考虑成本和简单性的公司可能会接受一些重放或手动故障恢复,而不是构建自定义解决方案。

 

原文链接:

https://www.infoq.com/news/2025/08/agoda-kafka-failover/

2025-08-17 08:001

评论

发布
暂无评论

中国气象局干部培训学院特邀和鲸共探大模型赋能气象服务现代化

ModelWhale

人工智能 大数据 气象 #大模型

开源最强!DeepClaude使用方案,内含DeepsSeek无门槛部署方法

ModelWhale

#人工智能 #大数据 #大语言模型 DeepSeek

昇腾+DeepSeeK | 博云联合昇腾打造满血版一体机

BoCloud博云

博云 DeepSeek AI一体机

数据分析与AI丨基于AI的电子元件焊接质量优化

Altair RapidMiner

机器学习 AI 数据分析 制造业 RapidMiner

超越数字:利用数据可视化推动企业战略决策

智达方通

企业管理 财务预算 超越预算

时序数据库 IoTDB 荣获第八届中关村国际前沿科技大赛工业互联网领域赛 Top3

Apache IoTDB

混合应用开发避坑指南:Hybrid到小程序架构的技术选型经验分享

xuyinyin

跨国企业组网方案: IPLC专线的优势和应用场景

Ogcloud

组网 企业组网 IPLC 国际网络专线 跨国企业组网

《Operating System Concepts》阅读笔记:p512-p527

codists

操作系统

C 语言内存布局深度剖析:从栈到堆,你真的了解吗?

伤感汤姆布利柏

看过智谱现场演示,我觉得AI要开始卷“动手能力”了

Alter

AI

API 安全之认证鉴权

阿里巴巴云原生

阿里云 云原生 API

天下拍-艺术品拍卖经典案例分享

至存网络

埋点 拍卖 用户画像 艺术品拍卖 资产拍卖

反向海淘代购中二次付款难题的深度解析与解决之道

代码忍者

Flink批处理自适应执行计划优化

Apache Flink

大数据 flink 实时计算 批处理

通义灵码 Rules 来了:个性化代码生成,对抗模型幻觉

阿里云云效

阿里云 云原生

Databend 产品月报(2025年3月)

Databend

BeeWorks:企业级即时通讯和协同办公软件

BeeWorks

即时通讯 IM 企业即时通讯平台 私有化部署 局域网视频软件

数据蒸馏与知识蒸馏技术解析:测试开发中的高效能实践

测试人

人工智能 软件测试

突破公网瓶颈的专线选择:IPLC专线

Ogcloud

企业组网 IPLC 国际专线 国际网络专线 国际IPLC专线

C 语言内存布局深度剖析:从栈到堆,你真的了解吗?

不在线第一只蜗牛

C#

卧槽!C 语言宏定义原来可以玩出这些花样?高手必看!

不在线第一只蜗牛

C#

通义灵码 Rules 来了:个性化代码生成,对抗模型幻觉

阿里巴巴云原生

阿里云 云原生

deepseek+气象应用,成都市气象局开展大模型赋能气象业务专题培训

ModelWhale

人工智能 大数据 大模型 气象

一站式解决Deepseek微调三大痛点:数据集、GPU资源、微调手册与源码

九章云极DataCanvas

人工智能 DeepSeek deepseek微调

苹果电脑压缩软件哪个好用?Mac解压缩软件BetterZip免费版安装激活教程,附注册码

阿拉灯神丁

压缩工具 mac解压缩软件 BetterZip BetterZip 5下载 BetterZip 5破解版

内网即时聊天软件推荐,哪款更适合企业的即时通讯需求?

BeeWorks

IM 企业即时通讯平台 即时通讯IM 私有化部署 局域网视频软件

字节开源轻量级 TTS 模型 MegaTTS3,中英切换自如;面壁首个纯端侧智能助手「上车」,支持多模态交互丨日报

声网

电竞革命!电选对平台狂省90%硬件费:ToDesk云电脑、网易云游戏等终极评测

小喵子

云电脑 ToDesk云电脑 云电竞

C 语言宏定义原来可以玩出这些花样?高手必看!

伤感汤姆布利柏

更换DNS服务器多久生效?需要注意哪些事项?

国科云

Agoda通过自定义的双向同步功能来处理跨数据中心的Kafka消费者故障转移_软件工程_InfoQ精选文章