如何在kafka主题中使用新添加的分区平衡消息

时间:2019-01-27 12:10:23

标签: apache-kafka kafka-consumer-api kafka-producer-api

我的kafka集群的某些主题分区太少,因此收集了大量的消息积压。添加其他分区后,只有新消息在所有新分区之间保持平衡。

在所有新分区之间平衡原始分区内的“旧”消息积压的首选方法是什么?

我曾考虑过重新读写所有积压到该主题的消息,并相应地更新偏移量,但是如果新的消费者组将从本主题的开头开始使用,它将使消息重复。

1 个答案:

答案 0 :(得分:1)

您可以reassign partitions到新的经纪人,但是将现有分区的分区移至其他分区是行不通的。

您将需要使用所有数据,并将其推到具有更多分区的新主题上,以便将其散布开来;如果您真的在意这些数据没有被消费者重复读取,则需要跟踪哪些数据数据已经消耗掉了,理想情况下是由生产者端生成的一些UUID消耗的,而不只是偏移量或时间戳。或者,您可以协调停止生产者,让消费者阅读其余的消息,然后将生产者和消费者迁移到具有更多分区的全新主题。