Kafka 消息积压紧急扩容:堆积百万条?动态增加 Partition 消费者,5 分钟清空队列!
做过 Kafka 消息消费的同学肯定都遇到过这个问题:由于生产速度突然激增或者消费者处理能力不足,消息队列里堆积了大量未消费的消息。看着监控面板上的消息堆积数不断攀升,心里真是慌得一批。 我之前就遇到过这样一个案例:某天晚上,由于上游系统突发故障,导致某个 Kafka Topic 的消息堆积量从平时的几百条突然涨到了 500 万条。消费者线程一直在满负荷运行,但消息堆积还是越来越严重。如果不及时处理,消息积压会导致数据延迟、消费者超时,甚至整个服务崩溃。 今天我们就来聊聊 Kafka 消息积压的紧急扩容方案,让您的系统在关键时刻能快速应对消息洪流。 消息积压的根本原因 1. 生产速度远超消费速度 这是最常见的情况: 场景:促销活动导致消息暴增 生产者:每秒产生 10000 条消息 消费者:每秒处理 1000 条消息 结果:每秒积压 9000 条消息 1 分钟:54 万条积压 10 分钟:540 万条积压 2. 消费者处理能力不足 问题分析: - 单线程处理太慢 - 业务逻辑太复杂 - 下游服务响应慢 - 数据库写入瓶颈 3. Partition 数量限制 Kafka 的消费并行度限....