对于任何需要较新版本Kafka版本的解决方案的人。请按照此方法操作。
Kafka的整个数据保留和传输策略取决于分区,因此请注意增加分区的影响。(Kafka的较新版本对此显示警告)。尝试避免在一个代理具有过多领导者分区的配置中。
有简单的三阶段方法。
步骤1:增加主题中的分区
./bin/kafka-topics.sh --zookeeper localhost:9092 --alter --topic testKafka_5 --partitions 6
步骤2:为给定主题创建分区json文件
{“ version”:1,“ partitions”:[{“ topic”:“ testKafka_5”,“ partition”:0,“副本”:[0,1,2]},{“ topic”:“ testKafka_5”,“ partition“:1,” replicas“:[2,1,0]},{” topic“:” testKafka_5“,” partition“:2,” replicas“:[1,2,0]},{” topic“ :“ testKafka_5”,“分区”:3,“副本”:[0,1,2]},{“ topic”:“ testKafka_5”,“分区”:4,“副本”:[2,1,0] },{“ topic”:“ testKafka_5”,“ partition”:5,“ replicas”:[1,2,0]}]}
使用较新的分区和副本创建文件。最好将副本扩展到不同的代理,但是副本应存在于同一群集中。考虑到远程副本的延迟。将给定的文件传输到您的Kafka。
步骤3:重新分配分区并验证
./bin/kafka-reassign-partitions.sh --zookeeper localhost:9092 --reassignment-json-file bin/increase-replication-factor.json --execute
./bin/kafka-reassign-partitions.sh --zookeeper localhost:9092 --reassignment-json-file bin/increase-replication-factor.json --verify
您可以使用--describe命令检查更改的效果。