首页/数据/数据工程与 ETL 速查/kafka-topics.sh 修改分区数
Kafka64 条

kafka-topics.sh 修改分区数

主题创建后只能增加分区,不能减少;增加分区会改变 key 到分区的映射,依赖同 key 有序的链路要确认可接受再操作。

支持仅能增加分区数(--partitions 必须大于当前值)
不支持减少分区、直接降低副本因子
影响key 映射变化;消费者可能需要重新均衡

增加分区

增加分区
kafka-topics.sh --bootstrap-server localhost:9092 \
  --alter --topic orders --partitions 12

kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic orders | head -3
减少分区或改副本因子要借助重分配工具(reassign),且有数据搬迁成本,操作前务必确认。

易错点

  • 对按 key 聚合的下游,分区扩容后结果会跨新旧映射,务必先评估数据语义
  • 自动扩分区脚本未加锁会出现并发修改,导致目标分区数非预期

数据来源与参考

  • Apache Kafka 官方文档:Modify Topics(增加分区)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌