首页/数据/数据工程与 ETL 速查/分区重分配(扩容/迁移/调整副本)
Kafka64 条

分区重分配(扩容/迁移/调整副本)

reassign 工具用于把分区副本搬到新 Broker、调整副本因子、在磁盘间迁移:先生成分配方案,再执行并持续 verify,可限速减少对业务影响。

三步--generate 生成方案 → --execute 执行 → --verify 校验
输入topics-to-move.json(待迁移主题)与 reassignment.json(目标分配)
限速--throttle 字节/秒,如 50000000

生成与执行

生成与执行
cat > topics-to-move.json <<'EOF'
{"topics": [{"topic": "orders"}], "version": 1}
EOF
kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \
  --topics-to-move-json-file topics-to-move.json \
  --broker-list "1,2,3" --generate

kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \
  --reassignment-json-file reassignment.json \
  --throttle 50000000 --execute

kafka-reassign-partitions.sh --bootstrap-server localhost:9092 \
  --reassignment-json-file reassignment.json --verify
迁移期间副本追平会占用网络与磁盘带宽,建议在业务低峰执行并设置限速。

易错点

  • 调整副本因子必须走重分配流程,直接改 replicas 配置不会生效
  • 执行后忘记 verify 或未及时取消 throttle,限速可能长期残留

数据来源与参考

  • Apache Kafka 官方文档:Expanding Clusters 与 kafka-reassign-partitions.sh
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌