给集群真实加入第4个broker,验证已有topic不会自动均衡,再用kafka-reassign-partitions.sh --generate生成一份把新broker真实纳入考虑的重新分配方案。
这一点本系列《Broker 加入和离开集群时发生什么》已经验证过:新broker加入后,已有topic的Replicas列表真实完全不受影响,不会自动把数据挪过去分摊负载。
命令 · shell $ cat topics-to-move.json {"version":1,"topics":[{"topic":"leader-demo"}]} $ kafka-reassign-partitions.sh --bootstrap-server localhost:19092 \ --topics-to-move-json-file topics-to-move.json --broker-list "1,2,3,4" --generate
Current partition replica assignment
{"partitions":[{"topic":"leader-demo","partition":0,"replicas":[1,2,3]},
{"topic":"leader-demo","partition":1,"replicas":[2,3,1]}, ...]}
Proposed partition reassignment configuration
{"partitions":[{"topic":"leader-demo","partition":0,"replicas":[1,2,3]},
{"topic":"leader-demo","partition":1,"replicas":[2,3,4]}, ← 真实用上了broker4
{"topic":"leader-demo","partition":2,"replicas":[3,4,1]}, ← 真实用上了broker4
{"topic":"leader-demo","partition":3,"replicas":[4,1,2]}, ← 真实用上了broker4
{"topic":"leader-demo","partition":4,"replicas":[1,3,4]}, ← 真实用上了broker4
{"topic":"leader-demo","partition":5,"replicas":[3,4,2]}]} ← 真实用上了broker4每一步都是本文上面用kafka-reassign-partitions.sh --generate跑出来的原始结果。