在 Kafka 中,自 2.4 版本引入(KIP-480)并成为无 Key 消息默认策略的粘性分区器(Sticky Partitioner),相比于传统的轮询策略(Round-Robin),在网络传输性能上的核心优势可以总结为一句话:极大提升了微批次(Batch)的填充效率,从而显著降低了网络请求开销并提升了吞吐量。 要理解这个优势,必须结合 Kafka 生产者的底层批处理机制(RecordAccumulator)来分析。 以下是粘性分区策略在网络传输性能上的具体显著优势: 1. 显著减少网络请求次数(降低网络 I/O 开销) 传统轮询策略的痛点:假设有 10 个分区,生产者会将消息依次“均匀”撒在 10 个分区的缓存队列中。这就导致每个分区的批次(Batch)填充得非常慢。往往还没达到 (默认 16KB),就触发了 (最大等待时间)的超时,最终导致生产者向 Broker 发送了大量包含少量消息的“小包”。 粘性分区的优势:粘性策略会“黏住”一个特定的分区,将所有的无 Key 消息全部塞进这一个分区的 Batch 中,直到该 Batch 被填满(达到 )或发送出去后,才会随机选择...