360 如何用 AutoMQ 解决千亿级 Kafka 冷读难题
创始人
2026-03-20 22:30:04
0

作者 | 王任义 360 云平台,基础架构部消息中间件研发

“我们运维上百套裸金属 Kafka 集群多年,最头疼的就是业务高峰期消费积压拖垮整个集群的写入。切换到 AutoMQ 后,日志检索平台的生产 P99 从 10 秒降到 500 毫秒,积压量下降了 40 倍,硬件成本还节省了一半。现在团队终于可以把精力从基础设施运维转向业务优化。”

1关于 360:从安全到云原生基础设施

360 集团是中国领先的互联网安全公司,也是互联网免费安全的倡导者和先行者。自 2005 年创立以来,先后推出 360 安全卫士、360 手机卫士、360 安全浏览器等安全产品,服务数亿用户。随着业务版图从安全延伸到搜索、游戏、智能硬件等领域,360 内部的数据规模也在持续膨胀——每天产生千亿级日志,PB 级数据需要实时采集、传输和分析。

支撑这一切的底座,是 360 云平台。作为集团技术中台,360 云平台为所有业务线提供存储、计算、中间件等基础云服务,而 Kafka 是其中最核心的消息队列中间件。生产环境运行着上百套 Kafka 集群,主要采用裸金属部署,单 Topic 峰值 60 万 QPS,集群峰值 500 万 QPS。

随着集群规模持续增长, 运维成本隔离性问题日益突出——硬件故障处理、扩容迁移、追赶读拖垮写入,这些都是大规模裸金属 Kafka 的老大难问题。在云原生和 Serverless 的大趋势下,360 云平台开始思考:是否有更先进的 Kafka 架构,能更好地适配云时代?

团队开始调研新一代方案, AutoMQ 基于 S3 的 Diskless Kafka 架构引起了关注——存算分离、读写路径隔离、秒级弹性伸缩,这些特性恰好对准了 360 在大规模 Kafka 运维中最头疼的问题。而 360 内部团队基于 Apache OZone 提供了支持 S3 API 标准协议的分布式存储系统,意味着 AutoMQ 所需的对象存储底座在 360 内部已经具备,落地条件成熟。

2冷 读:从 Kafka 的架构短板到 AutoMQ 的解法

追赶读(catch-up read)是消息系统中非常常见的场景:下游消费者因为处理瓶颈或批处理任务,需要从较早的位点开始消费已经不在内存中的“冷数据”。对于大多数消息系统来说,这本不应该是个难题,但 Apache Kafka 的架构设计让冷读变成了一个影响全局的性能杀手。

问题的根源在于 Kafka 读写路径上的两个关键技术选择:

第一,Page Cache 无法区分冷热数据。 Kafka 将内存管理完全交给操作系统的 Page Cache,自身不做冷热分离。当消费者读取冷数据时,大量磁盘数据被加载进 Page Cache,挤占了热数据的内存空间,导致原本可以从内存直接读取的实时消费(tail read)也开始频繁触发磁盘 IO。

第二,SendFile 系统调用阻塞网络线程。 Kafka 的零拷贝机制依赖 SendFile 系统调用,而这个调用发生在 Kafka 的网络线程池中。当 SendFile 需要从磁盘拷贝冷数据时,会阻塞网络线程。由于同一个线程池同时处理读写请求, 冷读不仅拖慢自己,还会级联影响同集群所有 Topic 的写入性能

这是一个已知的架构问题(KAFKA-7504),至今未被根本解决。

https://issues.apache.org/jira/browse/KAFKA-7504

360 云平台对此深有体感。360 有一个核心业务场景:线上服务的统一日志检索平台,所有服务的运行日志通过 Kafka 收集,统一写入 Elasticsearch,业务基于 ES 做日志检索和告警。这个业务的特点是 波峰波谷明显——每天业务高峰期,下游 ES 写入达到瓶颈,消费者跟不上生产者,消息开始积压,正是上面描述的冷读场景。实际表现:业务高峰期消息积压达到 10 亿条、约 200 GB,集群写入 P99 飙升到约 10 秒,同集群内其他业务的 Topic 也受到影响,日志检索和告警的及时性无法保障。

AutoMQ 从架构设计的第一天就考虑了 冷热数据隔离问题,将数据路径拆分为三条独立通道:

写入使用 Direct IO 绕过 Page Cache,从根本上避免了冷读对写入路径的干扰。冷读走对象存储的高吞吐通道,充分利用对象存储的带宽能力,不与写入和实时消费争抢资源。三条路径在架构层面彻底隔离,意味着 无论下游消费者积压多少数据,追赶读都不会影响生产者的写入性能

对 360 来说,AutoMQ 的三路径架构直接对应了日志检索平台面临的冷读问题。同时,AutoMQ 100% 兼容 Kafka 协议,360 已有的业务代码和自研 Client 框架无需改造;云原生的 K8s 部署模式也与 360 云平台已全面容器化的基础设施天然契合。

3性能评估与验证

在正式投入生产之前,360 团队在 Kubernetes 上搭建了评估集群,从基础延迟、冷读隔离、弹性伸缩三个维度对 AutoMQ 进行了系统性验证。评估集群使用 StatefulSet 分别管理 AutoMQ 的 Controller(2C/4GB)和 Broker(4C/16GB),数据持久化到对象存储。

性能基准测试

评估环境就绪后,第一步是验证基础延迟是否满足生产要求。团队在 8 节点 Broker 集群上,使用业界标准的 OpenMessaging Benchmark 框架,分别以 100 MiB/s 和 500 MiB/s 两个负载级别进行压测(acks=all,确保数据持久化后再返回成功):

  • 发送延迟(ms)

  • 端到端延迟(ms)

追赶读隔离测试

团队以 100 MiB/s 持续发送,在累积 100 GiB 数据后拉起消费者从最早位点开始消费,模拟业务高峰期的冷读场景。结果表明:写入速率和延迟在追赶读期间保持稳定,追赶读峰值达到约 461 MiB/s,能够快速消化积压消息。读写路径的隔离性得到验证。

弹性伸缩测试

对于 360 这样拥有上百套 Kafka 集群的团队来说,弹性伸缩能力直接决定了运维负担的大小。传统 Apache Kafka 的扩容之所以慢,根本原因在于 Broker 是有状态的——每个 Broker 本地磁盘上存储着大量 partition 数据,新增节点后需要跨网络迁移这些数据才能实现负载均衡,数据量越大迁移越慢,动辄数小时甚至数天。AutoMQ 的存算分离架构从根本上改变了这一点:数据全部持久化在对象存储中,Broker 是无状态的,新节点启动后只需接管 partition 的元数据,无需迁移任何数据,因此可以做到秒级分区迁移和分钟级弹性扩容。扩容完成后,AutoMQ 内置的自动重平衡机制会持续监测各节点负载,动态调度分区分配,确保流量在新旧节点间自动均衡。

360 团队设计了一个极端场景来验证这一能力:集群初始只有 1 个 Broker,创建 1000 分区的 Topic,直接以 1 GiB/s 的流量发送。从监控告警触发到批量扩容再到流量自动均衡,全程 4 分钟完成,无需人工干预,实际验证效果如下图所示。

相比传统 Kafka 扩容动辄数小时的数据迁移,这个结果意味着 360 未来面对突发流量时,可以真正实现自动化的弹性响应,而不再依赖人工值守和提前预留大量冗余资源。

评估结论

三轮测试全部符合预期。基础延迟在 acks=all 配置下依然保持毫秒级;追赶读期间写入性能完全不受影响,冷热隔离的架构承诺得到了实测验证;弹性伸缩从 0 到 1 GiB/s 仅需 4 分钟,彻底改变了传统 Kafka 扩容的运维模式。

4生产部署与收益

基于评估结果,360 团队决定将日志检索平台——冷读问题最突出的业务——作为第一个生产业务切换到 AutoMQ。

生产部署架构

生产环境沿用了评估阶段的部署模式。AutoMQ 的架构设计理念是将数据持久性和可用性卸载给云存储,对象存储本身的高可用性是整个架构的基石。为了在此基础上进一步提升可用性,360 额外设计了集群级故障切换方案。

360 的做法是:每个 AutoMQ 集群配备一个 HA 备用集群,定时同步集群元数据。生产集群通过实时写检测持续监控健康状态,一旦检测到异常,自动将集群 DNS 解析切换到备用集群,同时修改 Endpoint 服务返回的集群地址。客户端侧配置 metadata.recovery.strategy=rebootstrap (Kafka KIP-899),故障发生后客户端自动重新初始化连接地址完成集群切换,备用集群按需弹性扩容承接流量。这套方案充分利用了 AutoMQ Broker 无状态的特性——备用集群无需预先承载数据,只需在切换时快速扩容即可。

在资源配置上,单个日志检索集群高峰期部署 30 个 Broker Pod(4C/16GB),配合 HPA 自动伸缩,低峰期自动缩容节省资源。相比此前裸金属 Kafka 需要长期预留大量物理机应对峰值流量,容器化部署的资源利用率有了质的提升。

上线收益

日志检索平台切换到 AutoMQ 后,困扰团队已久的业务高峰期消息积压问题被彻底解决。下表对比了切换前后积压数据处理的核心指标,可以看到 AutoMQ 显著提升了 Kafka 生产消费链路在消息堆积场景下的处理效率。

Kafka 常被用于削峰填谷,消息堆积本身是正常现象,关键在于消费者能否快速消化这些积压数据。Apache Kafka 的传统架构下,冷读会触发 Broker 磁盘 I/O,显著拖慢消费速率。

AutoMQ 采用 Diskless 架构,天然实现冷热数据分离:冷读时通过 prefetch 和并发优化直接从对象存储拉取历史数据,既不影响实时写入和追尾读,也不会引发 Broker 侧的磁盘 I/O 和性能劣化,因此能够显著提升积压数据的消费速率,避免流量高峰期间堆积过多的数据。

从吞吐监控可以看到,切换后的日志检索集群在业务高峰期峰值吞吐达到 1.4 GB/s,30 个 4C/16GB 的 Pod 即可稳定承载,写入曲线平滑无毛刺。

存储方面,数据自动持久化到对象存储,存储容量随业务量弹性增长,无需提前规划磁盘容量,也不再有裸金属时代磁盘空间告警的运维负担。

对比最为直观的是 Consumer Lag 曲线:切换前,业务高峰期积压峰值超过 10 亿条消息;切换后,同样的业务流量下积压量 下降了 40 倍,消费者能够快速追上生产进度。

其中最关键的变化是隔离性:切换前,业务高峰期的消息积压会通过冷读污染 Page Cache,级联拖垮同集群所有 Topic 的写入;切换后,由于 AutoMQ 的读写路径在架构层面彻底隔离,即使下游 ES 出现写入瓶颈导致消费积压,生产端的写入延迟依然保持在毫秒级,日志检索和告警的及时性得到保障。

切换 AutoMQ 前的 Consumer Lag

切换 AutoMQ 后的 Consumer Lag (积压下降 40 倍)

5展 望

日志检索平台的上线验证了 AutoMQ 在 360 生产环境中的可行性。作为集团技术中台,360 云平台承载着上百套 Kafka 集群,覆盖日志采集、实时计算、监控告警、数据同步等多种业务场景。日志检索平台只是第一步,接下来团队计划将 AutoMQ 逐步推广到更多业务线的 Kafka 集群, 充分利用存算分离架构带来的弹性伸缩和成本优势,最终实现从裸金属到云原生 Kafka 架构的整体升级

相关内容

原创 ...
昆仑银行"断腕"村镇银行:一场无奈的资本撤退 四川金融监管局的一纸...
2026-03-20 06:52:33
从“帮销”到“共兴”,上海...
今天起,一场跨越山海、融合花香与烟火气的春日盛宴——2026年上海...
2026-03-20 06:52:18
预售新规看似利好,漏洞仍需...
最近地方政府关于房地产预售制度的调整,在朋友圈里引来了不少讨论,大...
2026-03-20 06:50:02
三星电子计划2026年向A...
IT之家 3 月 19 日消息,三星电子在今日股东大会后公布的文件...
2026-03-20 06:46:28
时间不再是普通人的朋友
来源:虎嗅APP 一、AI压缩的正是时间 中文互联网流行一句话:...
2026-03-20 06:44:09
不清仓将被强制处理?金价波...
3月19日,国际金价再度大幅下挫,伦敦金盘中跌超2.4%,跌破47...
2026-03-20 06:43:24
华住集团2025年营收增长...
图片来源:视觉中国 蓝鲸新闻3月19日讯(记者 孙煜)一年新开24...
2026-03-20 06:40:38
雷军小米SU7发布会请来“...
IT之家 3 月 19 日消息,在今天晚间的小米春季新品发布会上,...
2026-03-20 06:38:22
雷军的“新朋友圈”
今天,小米新一代SU7发布,正式发布会之前,雷军照常在休息间/贵宾...
2026-03-20 06:37:07

热门资讯

上海健康播报|春分时节乍暖还寒... “春分雨脚落声微, 柳岸斜风带客归。” 3月20日为春分,昼夜均分,寒暑相平,万物进入蓬勃生长的“加...
德企加码中国,为何看重这座城市... 伴随德国企业持续加码中国被不断讨论,更加精准的“目的地”也正在浮现。 今天(3月20日),包括蔡司、...
花旗:如果冲突在一两周内结束,... 花旗:如果冲突在一两周内结束,且届时霍尔木兹海峡完全开放,荷兰天然气期货价格可能会跌至每兆瓦时40欧...
记者观察|再次当选泰国总理 阿... 泰国国会下议院19日举行总理选举,自豪泰党候选人阿努廷以293票获得当选所需的过半票数,再次当选泰国...
特朗普:北约是纸老虎 美国总统特朗普今天(3月20日)在其社交媒体“真实社交”发文,严厉批评北约在应对伊朗问题上的表现,称...
美联储理事沃勒:如果就业疲软,... 美联储理事克里斯托弗·沃勒表示,在评估货币政策走向时需要保持谨慎,但就业市场若持续疲软,他可能在今年...
也门胡塞武装威胁封锁曼德海峡 ... 央视新闻报道称,据俄罗斯方面20日消息,也门胡塞武装政治局成员穆罕默德·布海提说,为支持伊朗,该组织...
私人飞机避坑指南:富豪购机为何... 近些年,全球财富格局重构,叠加商务出行需求暴涨,私人飞机市场迎来了前所未有的热度。尤其是2025年7...