Kafka主题分区数量调整(扩容)的影响及相关疑问解析
Kafka主题分区扩容的疑问与细节
我之前以为Kafka主题创建后无法修改分区数量,后来发现其实支持直接增加分区,接下来我想理清分区扩容时的几个核心细节:
- 消息分区分配逻辑:消息发送时,通过
hash(key) % number_of_partitions计算目标分区编号。 - 分区数量变更后的分配变化:当分区数增加后,消息Key的哈希值保持不变,但由于除数(分区总数)变大,原本
hash(key) >= 旧分区数的Key对应的新消息,会被分配到新增的分区中,而非原来的分区。 - 旧消息的存储情况:新增分区后,所有旧消息都会保留在原分区中,不会被迁移到新分区。
另外,之前有说法称主题创建后无法修改分区数,这种说法并不准确——虽然可以通过创建一个分区数不同的新主题、将旧主题数据流迁移到新主题后删除旧主题的方式变相调整分区数,但这和直接修改原主题分区数的操作完全不同。
内容的提问来源于stack exchange,提问作者user2138149
相关产品推荐
相关产品推荐

