Kafka 分区数据倾斜(Data Skew)是指 Kafka Topic 中的数据分布极度不均匀,导致某些分区(Partition)数据量巨大(成为热点),而其他分区数据量很少甚至为空。 这会引发消费者积压(Lag)、Broker 节点磁盘/CPU 负载不均、整体吞吐量下降等严重问题。 解决 Kafka 数据倾斜问题,通常需要从生产端(根本解决)、消费端(缓解与打散)和Broker 架构端三个维度入手。以下是具体且系统的解决方案: --- 一、 核心原因排查 在动手解决之前,必须明白为什么会倾斜。Kafka 默认的分区策略是: 1. 指定了 Partition ID:直接发送到指定分区。 2. 没有指定 Partition ID,但指定了 Key:通过对 Key 进 Hash 求模()来决定分区。(最常见的倾斜原因:Key 的数据分布本身不均匀,比如某个大客户/大 V 的数据量占了 80%) 3. 既没有指定 Partition ID,也没有指定 Key: Kafka 2.4 之前:轮询(Round-Robin)。 Kafka 2.4 之后:黏性分区(Sticky Partit...