Kafka 生产者(Producer)在发送消息时,必须决定将消息发送到 Topic 的哪个分区(Partition)。这个过程由 分区器(Partitioner) 来完成。 选择合适的分区策略对于 Kafka 的 负载均衡、消息顺序性 和 吞吐量 至关重要。 以下是 Kafka 生产者常见的分区策略: --- 1. 默认分区策略 (DefaultPartitioner) 这是 Kafka 生产者默认使用的策略(如果没有显式配置其他策略)。它的行为取决于消息是否指定了 Key。 A. 如果指定了 Key (Key != null) 策略:Hash 取模。 原理:Kafka 对 Key 进行 Hash 计算(使用 MurmurHash2 算法),然后对总分区数取模。 结果:具有相同 Key 的消息总是会被发送到同一个分区。 适用场景:需要保证消息顺序的场景(例如:同一个订单 ID 的状态变更必须有序)。 B. 如果没有指定 Key (Key == null) 这里的行为在 Kafka 2.4 版本前后发生了重大变化: Kafka 2.4 之前:轮询策略 (Round Robin)。...