适合任何想要为较新的Kafka版本提供解决方案的人。请按照此方法操作。
Kafka的整个数据保留和传输策略取决于分区,因此请注意增加分区的影响。(Kafka的新版本显示有关此的警告)尽量避免配置一个代理具有太多前导分区。
有简单的3阶段方法可以做到这一点。
步骤 1:增加主题中的分区
./bin/kafka-topics.sh --zookeeper localhost:9092 --alter --topic testKafka_5 --partitions 6
步骤 2:为给定主题创建分区 json 文件
{ “version”:1, “partitions”:[ {“topic”:“testKafka_5”,“partition”:0,“replicas”:[0,1,2]}, {“topic”:“testKafka_5”,“partition”:1,“replicas”:[2,1,0]}, {“topic”:“testKafka_5”,“partition”:2,“replicas”:[1,2,0]}, {“topic”:“testKafka_5”,“partition”:3,“replicas”:[0,1,2]}, {“topic”:“testKafka_5”,“partition”:4,“replicas”:[2,1,0]}, {“topic”:“testKafka_5”,“partition”:5,“replicas”:[1,2,0]} ]}
使用较新的分区和副本创建文件。最好将副本扩展到不同的代理,但它们应存在于同一集群中。考虑远程副本的延迟。将给定的文件传输到您的卡夫卡。
步骤 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 命令检查更改的效果。