如果将新分区添加到 Kafka 主题,消费者偏移量会发生什么变化?

What happens to consumer offsets if a new partition(s) is added to a Kafka topic?

添加新分区后,消费者偏移量会发生什么变化?它保持不变吗?

是的,它保持不变。

每个分区单独维护一个偏移量,因此您的新分区的偏移量将从 0 开始,不会影响其他偏移量。

假设您谈论的是高级 consumer/consumer 组,消费者偏移量保持不变,因为偏移量特定于分区。因此,消费者将在开始或结束或时间 t 从新分区开始消费,具体取决于配置的起始偏移量。例如,如果消费者已经在分区 1 中消费了偏移量 100000,在分区 2 中消费了 120000,当您添加第三个分区时,消费者将在一段时间后通过轮询发现新分区,并且只重置该新分区的偏移量。

更改主题中的分区集时要记住的一件重要事情是热点。如果您向主题添加一个新分区,历史消息仍将分布在旧分区中,因此假设您使用基本 round-robin/hash 分区,旧分区中的数据将仍然比新分区中的数据大得多分区,直到所有分区都增长到足以删除旧分区的旧段为止。