【问题标题】:Kafka | Increase replication factor of multiple topics卡夫卡 |增加多个主题的复制因子
【发布时间】:2019-03-09 14:37:09
【问题描述】:

我有一个 3 代理 Kafka 集群,其中包含许多复制因子为 1 的主题。我知道我可以通过将带有分区重新分配配置的 JSON 文件传递​​给 kafka-reassign-partitions.sh 来增加它。

我的困惑是我应该传递一个包含所有主题的分区重新分配详细信息的 JSON 文件,还是应该为每个主题创建一个 JSON 并单独运行它们?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    您可以创建多个.json 文件,也可以使用包含多个主题的重新分配详细信息的单个文件:

    {
      "version":1,
      "partitions":[
          {"topic":"topic_1","partition":0,"replicas":[0,1]},
          {"topic":"topic_1","partition":1,"replicas":[1,0]}, 
          {"topic":"topic_2","partition":0,"replicas":[0,1]},
          {"topic":"topic_2","partition":1,"replicas":[1,0]}
      ]
    }
    

    然后运行

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

    您的主题应如下所示:

    ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic_1
    Topic:demo-topic        PartitionCount:2        ReplicationFactor:2     Configs:
            Topic: topic_1       Partition: 0    Leader: 0       Replicas: 0,1     Isr: 0,1
            Topic: topic_1       Partition: 1    Leader: 1       Replicas: 1,0     Isr: 1,0
    
    ./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic_2
    Topic:demo-topic        PartitionCount:2        ReplicationFactor:2     Configs:
            Topic: topic_2       Partition: 0    Leader: 0       Replicas: 0,1     Isr: 0,1
            Topic: topic_2       Partition: 1    Leader: 1       Replicas: 1,0     Isr: 1,0
    

    最后,最后,--verify 选项可以与该工具一起使用来检查分区重新分配的状态。请注意,相同的 expand-cluster-reassignment.json(与 --execute 选项一起使用)应与 --verify 选项一起使用

    > bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json  --verify
    Status of partition reassignment:
    Reassignment of partition [topic_1,0] completed successfully
    Reassignment of partition [topic_1,1] is in progress
    Reassignment of partition [topic_2,0] completed successfully
    Reassignment of partition [topic_2,1] completed successfully 
    

    【讨论】:

      【解决方案2】:

      这是成本/风险的平衡。

      1. 一起重新分配所有主题:

        • 优点:易于运行,单一命令。要监控的单个任务
        • 缺点:没有太多控制。根据您的集群,该过程可能会复制大量数据。虽然您可以设置重新分配配额,但很难精确控制重新分配使用的带宽。因此,这可能会影响使用集群的其他服务
      2. 以“小”块重新分配主题:

        • 优点:这可以更好地控制大规模重新分配可能产生的影响
        • 缺点:操作员必须拆分重新分配。运行和监控每个块

      根据集群的大小和使用情况,您应该能够确定哪种方法最适合您。在繁忙的集群中,我建议设置重新分配配额并仅按块重新分配主题,否则重新分配将尝试尽快执行,这会对集群产生很大影响。如果您的集群大部分是新的/未使用的,那么您可以同时重新分配所有主题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-13
        • 2019-12-12
        • 2017-01-16
        • 2018-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-04
        相关资源
        最近更新 更多