AutoMQ 助力曹操出行解决 Kafka 中秋国庆扩容痛点

简介: AutoMQ 助力曹操出行解决 Kafka 中秋国庆扩容痛点

作者:曹操出行 消息中间件负责人 王智洋


01

关于曹操出行


曹操出行创立于 2015 年 5 月 21 日,是吉利控股集团布局“新能源汽车共享生态”的战略性投资业务,目前已经发展为中国领先的共享出行平台,曹操出行以“科技重塑绿色共享出行”为使命,将全球领先的互联网、车联网、自动驾驶技术以及新能源科技,创新应用于共享出行领域,以“用心服务国民出行”为品牌主张,致力于打造服务口碑最好的出行品牌。


02

为什么选择使用 AutoMQ

曹操出行属于出行类业务,业务数据量和时间呈现明显的关联关系。对于节假日、早晚高峰、天气影响、特定活动(例如演唱会)等生活场景,出行相关的数据量会显著增长。此外,曹操出行经过多年的发展每天也会产生大量的出行数据用于分析。



在这样的背景下,过去曹操出行使用 Kafka 产生的主要问题在于其缺乏弹性的存算一体化架构。由于 Apache Kafka 的架构本身缺乏弹性,在实际生产应用中,我们遇到了如下的一些问题:


  • 云盘存储空间有限,难以扩展:Kafka 的存储强依赖本地存储。曹操出行存量 Kafka 集群默认是 MBR 的磁盘格式,至多只能支持 2.2 TB 的存储,不能直接修改磁盘格式,否则可能会引发数据丢失。在这样的客观限制下,我们只能选择降低 Topic 的保存时间或者在 EC2 上挂载多个云盘。原先使用的方式是挂载多个云盘,但是这给我们带来了很大的运维负担。每一次扩容都是一次“提心吊胆”的过程,除了要应对 Kafka 本身扩容的问题,还得人工挂盘、配置、确认生效。


  • Kafka 集群扩容时运维复杂并且风险高:Kafka 集群自己进行扩容是一件很复杂并且高危的操作。曹操出行为了避免计算资源浪费,存储资源不足时我们采用的是在单个 Broker 上挂载多个云盘。集群扩容需要按 Broker 和 磁盘制定 Topic 的迁移和分配,整个过程不仅复杂并且风险较高,需要协调好上下游应用在业务地方时期操作,避免影响业务。


在充分调研 AutoMQ 以后,我们发现其创新的共享存储架构可以完全解决 Kafka 的弹性问题:

  • 极速扩缩容,快速响应业务变化:AutoMQ 的设计理念是将数据的持久性卸载至对象存储、云盘这样的云存储之上,因此其内部在扩缩容时不再像 Apache Kafka 一样涉及分区数据复制,计算和存储层也得以完全分离。AutoMQ 中的分区迁移行为仅仅是元数据的变更,这使得其可以做到秒级分区迁移的能力。在秒级分区迁移的支持下,AutoMQ 可以在 Broker 节点新增或者缩减时在秒级内将分区迁移至新节点或者从待缩容的节点上迁移至其他节点,从而保证整个扩缩容可以极速完成。


  • 自动化弹性,降低扩缩容运维复杂度:由于 AutoMQ 内置了持续重平衡的组件不停歇地运行,使得其可以通过观测 Metric 来实时生成调度计划来帮助用户自动迁移分区。这也意味着对 AutoMQ 进行扩缩容时,用户无需再自己制定 Topic 和 分区的迁移计划,整个过程是完全自动化的。AutoMQ 将 Kafka 高风险、高复杂度的扩缩容操作变成一个了一个低风险可以常态化自动执行的操作是在 Kafka 上的重大创新。过去我们内部在对 Kafka 扩容时,还遇到过 Topic 过期删除任务与扩容时 Topic 迁移协同产生的故障,在使用 AutoMQ 以后我们都无需再担心这些问题。
  • 持续自平衡,解放运维:AutoMQ 内置了一个持续工作的自平衡组件,这对 Kafka 集群的运维人员来说是一个真正的福音。自平衡组件会自动观测 AutoMQ 集群内部的 Metric 信息,通过这些 Metric 信息以及内置的规则引擎会自动生成实时的分区调度计划并且进行执行,带来以下好处:
  • 节点故障自愈:当 Broker 节点故障时,依靠自平衡组件,故障节点的分区会自动调度到其他健康的节点。
  • 提升集群容量利用率:自平衡组件会自动调度分区,确保整个集群内各个 Broker 的吞吐能力都被彻底利用,避免资源浪费。
  • Broker 热点自愈:分区热点是 Kafka 中的常见现象。自平衡组件可以自动识别热点 Broker,将热点 Broker 的分区按照规则引擎处理后迁移至其他 Broker 上,在保证容量高效利用的前提下自动打散热点分区。

此外,选择 AutoMQ 的另外一个非常重要的原因是其在保证 Apache Kafka 100% 兼容的前提下解决了过去 Kafka 的弹性痛点问题。由于我们已经存在大量 Kafka 的周边数据基础设施,这种兼容性使得我们可以非常平滑的过渡到 AutoMQ,无需对周边数据基础设施做任何改动。

03

AutoMQ 在曹操出行的应用


以下架构图说明了 AutoMQ 在曹操出行数据栈中的位置以及说明了其是如何发挥作用的。

曹操出行的数据源主要来自 RDS、应用埋点写入以及 ilogtail 采集的日志数据。这些数据主要包含出行相关的核心数据例如订单、驾驶员、乘客数据等。数据主要会流向 3 个集群:

  • 大数据集群:该集群的 Topic 主要用于大数据相关的分析。例如用户行为分析、漏斗分析等,从而来更好的指导出行业务的一些商业决策与运营。
  • 可观测集群:搜集 Trace,Metric 等信息,存入 ElasticSearch ,主要用于故障诊断、实时报警,可以尽早发现应用问题以及业务风险。
  • 业务集群:业务应用埋点发送的数据,用于 Flink 处理后生成一些报表

04

AutoMQ 助力曹操出行应对中秋、国庆流量高峰


目前为止,AutoMQ 已经帮助曹操出行成功度过了中秋和国庆的流量高峰,整个扩缩容体验非常丝滑。下图是曹操出行在中秋期间的某个生产环境的 AutoMQ 集群。可以看到出行业务在早高峰(早 7 点)、晚高峰(晚 6 点)以及中秋最后一天返程(晚 21 点)呈现与时间强关联的周期性特征。使用 AutoMQ 以后,在面对这样的一些出行高峰时,我们再也不需要像过去运维 Kafka 一样如坐针毡。当我们需要扩容时,AutoMQ 可以快速将集群扩容到指定的容量,并且保证集群可以稳定承载生产流量,不仅解决了过往 Kafka 弹性的痛点,也大大降低了我们运维的复杂度和风险,提升了 Kafka 运维同学的幸福指数。



总的而言,AutoMQ 在 Kafka 上的创新在全球来看都具有领先的技术优势,是一款能够在于 Kafka 保证完全兼容的基础上同时将成本、弹性发挥到极致的 Kafka 产品。在未来,我们将继续和 AutoMQ 保持合作,持续推广和深化 AutoMQ 在曹操出行中的应用。


相关文章
|
6月前
|
消息中间件 存储 运维
曹操出行借助 ApsaraMQ for Kafka Serverless 提升效率,成本节省超 20%
本文整理于 2024 年云栖大会主题演讲《云消息队列 ApsaraMQ Serverless 演进》,杭州优行科技有限公司消息中间件负责人王智洋分享 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。
148 15
|
9月前
|
消息中间件 Cloud Native Kafka
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
当前小红书消息引擎团队与 AutoMQ 团队正在深度合作,共同推动社区建设,探索云原生消息引擎的前沿技术。本文基于 OpenMessaging 框架,对 AutoMQ 进行了全面测评。欢迎大家参与社区并分享测评体验。
99 2
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
|
9月前
|
消息中间件 存储 Kafka
如何通过 CloudCanal 实现从 Kafka 到 AutoMQ 的数据迁移
随着大数据技术的飞速发展,Apache Kafka 作为一种高吞吐量、低延迟的分布式消息系统,已经成为企业实时数据处理的核心组件。然而,随着业务的扩展和技术的发展,企业面临着不断增加的存储成本和运维复杂性问题。为了更好地优化系统性能和降低运营成本,企业开始寻找更具优势的消息系统解决方案。其中,AutoMQ [1] 作为一种基于云重新设计的消息系统,凭借其显著的成本优势和弹性能力,成为了企业的理想选择。
67 0
如何通过 CloudCanal 实现从 Kafka 到 AutoMQ 的数据迁移
|
10月前
|
消息中间件 监控 Java
「布道师系列文章」宝兰德徐清康解析 Kafka 和 AutoMQ 的监控
本文由北京宝兰德公司解决方案总监徐清康撰写,探讨了Kafka和AutoMQ集群的监控。
280 2
「布道师系列文章」宝兰德徐清康解析 Kafka 和 AutoMQ 的监控
|
10月前
|
存储 消息中间件 Cloud Native
AutoMQ:基于 Regional ESSD 构建十倍降本的云原生 Kafka
本文介绍了AutoMQ基于Regional ESSD构建的十倍降本云原生,降低成本并提供无限容量,通过将存储层分离,使用ESSD作为WAL,OSS作为主存储,实现了成本降低和性能优化。此外,它利用弹性伸缩和抢占式实例,减少了70%的计算成本,并通过秒级分区迁移实现了高效弹性。而且,AutoMQ与Apache Kafka相比,能实现10倍成本优化和百倍弹性效率提升,且完全兼容Kafka API。
26082 12
|
9月前
|
消息中间件 Cloud Native Kafka
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
177 0
AutoMQ vs Kafka: 来自小红书的独立深度评测与对比
|
9月前
|
消息中间件 Kubernetes Kafka
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
122 0
AutoMQ 产品动态 | 发布 1.1.0,兼容至 Apache Kafka 3.7,支持 Kaf
|
10月前
|
消息中间件 Java Kafka
kafka 磁盘扩容与数据均衡操作代码
Kafka 的磁盘扩容和数据均衡是与保证Kafka集群可用性和性能相关的两个重要方面。在 Kafka 中,分区数据的存储和平衡对集群的运行至关重要。以下是有关Kafka磁盘扩容和数据均衡的一些建议
100 1
|
消息中间件 JSON 负载均衡
kafka 动态扩容现有 topic 的分区数和副本数
kafka 动态扩容现有 topic 的分区数和副本数
2227 0
|
11月前
|
消息中间件 Cloud Native Kafka
活动报名|AutoMQ x 阿里云云原生创新论坛(2024.03.09)见证“新一代云原生 Kafka ”重磅发布!
新一年, AutoMQ 首场线下活动重磅来袭!2024年3月9日,由 AutoMQ 与阿里云联合举办的云原生创新论坛将于杭州与大家见面,双方联合重磅发布新一代云原生 Kafka ——AutoMQ On-Prem 版本 !现场将会分享如何通过云原生和存算分离架构实现 Kafka 产品的10倍成本优化,并保持秒级分区无损迁移。另外,活动现场还有来自得物的技术专家分享 AutoMQ 在生产场景中的应用实践,以及阿里云的资深专家为大家剖析多 AZ 块存储的原理。
287 0
活动报名|AutoMQ x 阿里云云原生创新论坛(2024.03.09)见证“新一代云原生 Kafka ”重磅发布!