我对在Kafka中重新分区有疑问...
假设我有一个主题,该主题在3个具有复制因子3的Broker Kafka群集上具有3个分区,这意味着每个Broker将有一个主分区,而其他2个Broker将具有该分区的复制,我知道一个分区,只要分区分配策略保持不变,就可以保证在分区内有序交付。
我的问题是,让我说,我确定3个分区不够,我决定再添加一个分区和一个经纪人,然后会发生什么?如果分区策略这样说,已经存在于分区中的消息会被转移到新分区,否则它们将保留在旧分区中,而仅将新记录写入新分区?
如果在创建新分区后将重新分配所有分区,是否保留交货顺序?
答案 0 :(得分:2)
请注意,分区的一个用例是对数据进行语义分区,添加分区不会更改现有数据的分区,因此如果消费者依赖该分区,可能会打扰消费者。也就是说,如果数据是通过hash(key)%number_of_partitions进行分区的,则该分区可能会通过添加分区而被改组,但Kafka不会尝试以任何方式自动重新分发数据。
https://kafka.apache.org/documentation/#basic_ops_modify_topic