曹操出行借助 ApsaraMQ for Kafka Serverless 提升效率,成本节省超 20%

本文整理于 2024 年云栖大会主题演讲《云消息队列 ApsaraMQ Serverless 演进》,杭州优行科技有限公司消息中间件负责人王智洋分享 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。

曹操出行:科技驱动共享出行未来

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

曹操出行的 Kafka 应用实践

曹操出行将 Apache Kafka 应用于在线服务、可观测性、车联网、业务运营数据分析等业务场景。业务流量有明显的波峰波谷,如早晚高峰、节假日、极端天气等,都会导致流量突增。

曹操出行的数据来源广泛,包括 LBS、乘客、司机、新能源、车联网、基础研发等业务线。这些数据,如日志、binlog、链路追踪等,被采集并缓存到 Kafka 中,然后分发给不同的数据系统进行处理。

曹操出行的 Kafka 架构演进

随着业务规模的不断扩大,曹操出行决定将 Kafka 迁移上云,以实现业务效率与成本控制的双重优化。曹操出行从自建 Kafka 迁移到阿里云云消息队列 Kafka 版(ApsaraMQ for Kafka)v3 版本后,不仅实现了效率的显著提升和成本的有效降低,还简化了架构,大幅减轻了运维的复杂性。

下图清晰地展示了曹操出行的 Kafka 架构迁移至云端前后的对比。左侧为迁移前的自建 Kafka 架构,右侧为迁移至阿里云云消息队列 Kafka 版 v3 后的架构。

以下是迁移后架构的主要优化点:

  • 全托管、免运维: 云消息队列 Kafka 版提供全托管服务,基于存算分离架构,实现了计算的无状态化和存储的托管化,从而帮助曹操出行免除了系统级运维的投入,显著提升了运维效率。原先复杂繁琐的运维工作,如集群的部署、升级、扩缩容、topic 迁移、leader rebalance 等操作,现在简化为购买集群、升级集群、集群升配三个主要操作,曹操出行无需感知和参与扩缩容和 topic 迁移的具体过程。

  • 高可用、高可靠: 开源 Kafka 通过 ISR 机制实现服务高可用和数据高可靠,但计算和存储混杂,副本机制复杂度高,问题排查难度大。云消息队列 Kafka 版基于存算分离架构,实现各计算节点无状态且共享存储,不仅降低了复杂度,还提高了可运维性。计算节点高可用基于自研轻量 Leader 切换机制实现,在稳定提供读写服务的同时又能优雅轻便地 Leader 转移,是云消息队列 Kafka 版高效弹缩的核心底座。云消息队列 Kafka 版在存储层面基于阿里云飞天盘古 DFS,支持跨数据中心容灾,提供百微秒级平均延迟、毫秒级长尾延迟,数据可靠性 12个9,可用性 5个9。因此,迁移后的架构可靠性和可用性都得到了显著的提升。

  • 全面的可观测性: 云消息队列 Kafka 版 v3 提供了全面的可观测能力,帮助曹操出行构建了一套全方位的监控告警体系,以确保系统运行的稳定性和问题的响应速度。它不仅提供了曹操出行日常查看和定位业务问题所需的关键指标,如消息的生产消费速度和堆积程度、分区生产和消费倾斜等,还通过自动监控和处理 zk、broker 的负载信息,磁盘使用情况和 topic 分布信息等,简化了曹操出行需要关注的指标,使其能够更专注于业务本身,而无需过多关注底层细节。

ApsaraMQ for Kafka Serverless 助力曹操出行降本提效

随着业务持续增长,曹操出行采用了 ApsaraMQ for Kafka Serverless 系列,凭借其秒级弹性扩展和按需付费的优势,在实现灵活扩缩容的同时,保证了服务的敏捷性和稳定性,并节省了超过 20%  的成本。

具体业务价值包括:

  • 无需系统级运维,提供全托管服务
  • 存算分离架构升级、服务高可用、数据高可靠
  • 兼容开源大数据生态、兼容阿里云特色生态
  • 秒级弹性,灵活扩缩容,成本节省 20% 以上

ApsaraMQ for Kafka 的架构优势

随着云计算的广泛采纳和云基础设施的日益成熟,ApsaraMQ for Kafka 依托于阿里云成熟、强大的基础设施,如云服务器、飞天盘古存储系统、容器服务等经过大规模验证的产品,为系统的整体性能和稳定性提供了坚实的基础。

ApsaraMQ for Kafka 基于存算分离架构,对 Apache Kafka 的存储引擎进行了深度重构,实现了计算节点 Broker 的无状态化,充分利用弹性云存储,从而做到 Kafka 云服务的端到端弹性,实现了真正的 Serverless 架构。其中弹性云存储采用飞天盘古 DFS ,其构建于高性能的分布式存储系统之上,能够支持百万级客户,达到百微秒级平均延迟、毫秒级长尾延迟,并具备多 AZ 强一致多副本数据冗余。Serverless架构为 ApsaraMQ for Kafka 带来低成本、高性能等诸多价值。

在成本方面,由于数据直接写入高可靠的盘古 DFS,计算层 Broker 无流量复制,极大地降低了计算节点的 CPU 和网络带宽消耗,计算成本节约 60% 以上。存储层依赖盘古 DFS 实现高可靠的数据存储,并通过纠删码、冷热分层、基于 CIPU 软硬件协同优化等技术,有效降低了存储成本。同时消息存储数据还能够动态调控转冷比例,转储到对象存储,持续降低存储成本,按量阶梯付费,用得越多越便宜。得益于这套架构,ApsaraMQ for Kafka 相比社区版 Kafka 在支持同等业务规模的场景下,实际使用的资源成本得以数倍降低。

在性能方面,采用 OpenMessaging Benchmark Framework [ 1] 对 ApsaraMQ for Kafka 和 Apache Kafka 3.3 进行了攒批发送与碎片化发送场景下的吞吐延迟对比测试,测试结果显示,在攒批发送与碎片化发送场景下,ApsaraMQ for Kafka 在 TP999 的延迟表现整体均优于 Apache Kafka,并且随着吞吐的增加,这种性能优势更加明显,碎片化发送场景快十倍。

攒批发送,不同吞吐下 TP999 发送延迟对比

攒批发送,不同吞吐下 TP999 端到端延迟对比

碎片化发送,不同吞吐下 TP999 发送延迟对比

碎片化发送,不同吞吐下 TP999 端到端延迟对比

未来展望

曹操出行将与阿里云消息队列团队继续深化合作,共同探索并优化其消息队列架构,以应对日益增长的业务需求及挑战。并通过实际应用场景中的反馈,推动阿里云云消息队列 ApsaraMQ 产品迭代升级,不断完善解决方案,满足更多企业复杂多变的业务需求。

相关链接:

[1] OpenMessaging Benchmark Framework

https://openmessaging.cloud/docs/benchmarks/

点击此处,观看本场直播回放。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【研究生必备】如何利用AI论文生成器免费提升效率?

在研究生阶段,写论文往往是学业中最具挑战性的部分之一。 面对繁重的文献阅读、复杂的分析和紧迫的时间限制,很多同学都感到压力倍增。不过,随着科技的发展,AI论文生成器的出现为我们提供了一种全新的解决方案。今天,…

Android无限层扩展多级recyclerview列表+实时搜索弹窗

业务逻辑: 点击选择,弹出弹窗,列表数据由后台提供,不限层级,可叠加无限层子级; 点击item展开收起,点击尾部icon单选选中,点击[确定]为最终选中,收起弹窗; 搜索…

写作 | 人工智能在师生教学场景中的应用前景

正文 本文讨论人工智能在师生教学场景中的应用前景。在开展论述前,首先需要明确一些概念。 第一,什么是人工智能?人工智能(Artificial Intelligence), 字面意义,即人工制作的智慧能力。这种智慧…

Java线程6种生命周期及转换

多线程技术是我们后端工程师在面试的时候必问的一个知识点,今天就来盘点一下多线程的相关知识, 先来说下进程,线程及线程的生命周期: 进程:进程就是正在进行中的程序,是没有生命的实体,只有在运…

美格智能5G车规级通信模组: 5G+C-V2X连接汽车通信未来十年

自2019年5G牌照发放开始,经过五年发展,我国5G在基础设施建设、用户规模、创新应用等方面均取得了显著成绩,5G网络建设也即将从基础的大范围覆盖向各产业融合的全场景应用转变。工业和信息化部数据显示,5G行业应用已融入76个国民经…

GooglePlay: 应用和游戏的内容分级

对于后台私信的开发者们,希望能够携带详细过审记录和拒审邮件一同发来,方便我们尽快解决问题 应用与游戏 为您的应用或游戏选择类别和标签选择要添加的标签选择类别并添加标签类别示例与应用、游戏以及两者中所投放广告的内容分级相关的要求应用如何获得内容分级内容分级的用…

多线程--模拟实现定时器--Java

一、定时器的概念 定时器的本质就是一个闹钟,时间到了开始执行某些逻辑。Java标准库中的定时器是Timer。 我们查阅Java文档可以详细看到定时器的使用方法: Timer最核心的方法就是schedule方法。值得注意的是我们通常描述任务是使用Runnable来描述&…

Docker 镜像体积优化实践:从基础镜像重建到层压缩的全流程指南

​ 由于最近在发布的时候发现docker镜像体积变得越来越大,导致整个打包发布流程变得非常耗时了。所以又接到一个差事,优化最终镜像体积。顺便也记录一下docker镜像体积优化的一些步骤。 大概步骤可以分为以下几个步骤: 重做基础镜像&#x…

[linux 驱动]PWM子系统详解

目录 1 描述 2 结构体 2.1 pwm_chip 2.2 pwm_ops 2.3 pwm_device 2.4 pwm_class 3 相关函数 3.1 注册与注销 PWM 控制器 3.1.1 pwmchip_add 3.1.2 pwmchip_remove 3.2 申请与释放 PWM 设备 3.2.1 pwm_request 3.2.2 devm_pwm_get 3.2.3 pwm_free 3.3 控制 PWM …

Linux入门(2)

林纳斯托瓦兹 Linux之父 1. echo echo是向指定文件打印内容 ehco要打印的内容,不加任何操作就默认打印到显示器文件上。 知识点 在Linux下,一切皆文件。 打印到显示器,显示器也是文件。 2.重定向 >重定向操作,>指向的…

如何判断本地DNS是否污染

本地DNS污染是一种比较复杂且会对网络访问产生负面影响的现象。DNS即域名系统,它的主要功能是将便于人们记忆的域名转换为计算机能够理解的IP地址。本地DNS污染是指在本地网络环境中,DNS解析过程受到恶意干扰或错误配置的影响,使得域名被解析…

【数据仓库】Hive 拉链表实践

背景 拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的;顾名思义,所谓拉链表,就是记录历史。记录一个事务从开始一直到当前状态的所有变化的信息。 拉链表可以避免按每一天存储所有记录造成的海量存储问题…

日常工作采坑,关于图片压缩哪些坑一次性踩完。

文章目录 0.前言1.代码实现2.压缩工具包的配置 0.前言 首先说明一下这个图片压缩为什么那么艰难,主要原因还是在于需求过于奇葩。比较奇葩的原因有如下几点:   1.图片是一个很大的文件,我长这么大还没见过这个大的文件。图下可以图片文件可…

语音识别ic赋能烤箱,离线对话操控,引领智能厨房新体验

一、智能烤箱产品的行业背景 随着科技的飞速发展,智能家居已经成为现代家庭的新宠。智能烤箱作为智能家居的重要组成部分,正逐渐从高端市场走向普通家庭。消费者对于烤箱的需求不再仅仅局限于基本的烘焙功能,而是更加注重其智能化、便捷化和…

一文详解开源ETL工具Kettle!

一、Kettle 是什么 Kettle 是一款开源的 ETL(Extract - Transform - Load)工具,用于数据抽取、转换和加载。它提供了一个可视化的设计环境,允许用户通过简单的拖拽和配置操作来构建复杂的数据处理工作流,能够处理各种数…

D59【python 接口自动化学习】- python基础之异常

day59 捕获异常常见问题 学习日期:20241105 学习目标:异常 -- 75 避坑指南:编写捕获异常程序时经常出现的问题 学习笔记: 捕获位置设置不当 设置范围不当 捕获处理设置不当 嵌套try-except语法错误 总结 位置,范围…

Java开发配置文件的详情教程配置文件类型

学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把手教你开发炫酷的vbs脚本制作(完善中……) 4、牛逼哄哄的 IDEA编程利器技巧(编写中……) 5、面经吐血整理的 面试技…

应审稿人要求| pseudo bulk差异分析

一、写在前面 最近有粉丝提问,收到了如下的审稿人意见: 审稿人认为在单细胞测序过程中,利用findMarker通过Wilcox获得的差异基因虽然考虑到了不同组别细胞数量的不同,但是未能考虑到每组样本数量的不同。因此作者希望纳入样本水平…

Android13 系统/用户证书安装相关分析总结(二) 如何增加一个安装系统证书的接口

一、前言 接着上回说,最初是为了写一个SDK的接口,需求大致是增加证书安装卸载的接口(系统、用户)。于是了解了一下证书相关的处理逻辑,在了解了功能和流程之后,发现settings中支持安装的证书,只…

矩阵特殊打印方式

小伙伴们大家好,好几天没更新了,主要有个比赛。从今天起继续给大家更新,今天给大家带来一种新的题型:矩阵特殊打印方式。 螺旋打印矩阵 解题思路 首先给大家看一下什么是螺旋方式打印: 就像这样一直转圈圈。 我想大多…