如何将单个kafka服务器中使用的kafka主题迁移到复制因子为2的kafka集群?

ssm49v7z  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(784)

我运行的是一个kafka服务器,有多个产品和消费者。现在我想通过添加另一个代理来实现kafka集群。如何使用相同的主题和复制因子来实现这一点。

s4chpxco

s4chpxco1#

现在您要移动到一个具有两个kafka代理的集群,然后您应该使用以下命令将分区的数量增加到两个。

kafka-topics --topic my-topic --alter --partitions 2 --zookeeper zoo1

观察分区编号为2且rf:1的分区

kafka-topics --topic my-topic --describe  --zookeeper zoo1

Topic:my-topic PartitionCount:2 ReplicationFactor:1 Configs:

 Topic: my-topic Partition: 0 Leader: 0 Replicas: 1 Isr: 0
 Topic: my-topic Partition: 1 Leader: 2 Replicas: 1 Isr: 1

增加现有主题的复制因子很容易。需要在自定义重新分配json文件中指定额外的副本,并将其与--execute选项一起使用。
创建increase-replication-factor.json

{"version":1,
  "partitions":[
     {"topic":"my-topic","partition":0,"replicas":[0,1]},
     {"topic":"my-topic","partition":1,"replicas":[0,1]}
]}

执行以下命令

kafka-reassign-partitions --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --execute

您可以使用以下命令验证复制副本。

kafka-topics --zookeeper localhost:2181 --topic my-topic --describe

Topic: my-topic Partition: 0    Leader: 0   Replicas: 0,1 Isr: 0,1
Topic: my-topic Partition: 1    Leader: 1   Replicas: 0,1 Isr: 0,1

我建议您通过下面的链接在两个分区上平均地重新分配数据。
https://labs.tabmo.io/rebalancing-kafkas-partitions-803918d8d244https://kafka.apache.org/documentation/#基本#操作Š增加Š复制Š因子
希望对你有帮助。

相关问题