How to change the number of replicas of a Kafka topic?

后端 未结 8 809
离开以前
离开以前 2020-11-30 21:31

After a Kafka topic has been created by a producer or an administrator, how would you change the number of replicas of this topic?

8条回答
  •  感动是毒
    2020-11-30 21:42

    To increase the number of replicas for a given topic you have to:

    1. Specify the extra replicas in a custom reassignment json file

    For example, you could create increase-replication-factor.json and put this content in it:

    {"version":1,
      "partitions":[
         {"topic":"signals","partition":0,"replicas":[0,1,2]},
         {"topic":"signals","partition":1,"replicas":[0,1,2]},
         {"topic":"signals","partition":2,"replicas":[0,1,2]}
    ]}
    

    2. Use the file with the --execute option of the kafka-reassign-partitions tool

    [or kafka-reassign-partitions.sh - depending on the kafka package]

    For example:

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

    3. Verify the replication factor with the kafka-topics tool

    [or kafka-topics.sh - depending on the kafka package]

     $ kafka-topics --zookeeper localhost:2181 --topic signals --describe
    
    Topic:signals   PartitionCount:3    ReplicationFactor:3 Configs:retention.ms=1000000000
    Topic: signals  Partition: 0    Leader: 2   Replicas: 0,1,2 Isr: 2,0,1
    Topic: signals  Partition: 1    Leader: 2   Replicas: 0,1,2 Isr: 2,0,1
    Topic: signals  Partition: 2    Leader: 2   Replicas: 0,1,2 Isr: 2,0,1
    

    See also: the part of the official documentation that describes how to increase the replication factor.

提交回复
热议问题