简体   繁体   English

修改Kafka主题复制因子后会发生什么?

[英]What happens after modifying Kafka topic replication factor?

According to the docs , you just modify a topic to increase the replication factor. 根据docs ,您只需修改主题以增加复制因子。

 > bin/kafka-topics.sh --zookeeper zk_host:port/chroot --create --topic my_topic_name 
       --partitions 20 --replication-factor 3 --config x=y

Unfortunately, it doesn't specify what happens then after you modify the topic. 不幸的是,它没有指定修改主题后会发生什么。 Do existing log segments get replicated to the new replicas, or only new messages? 是否将现有日志段复制到新副本或仅复制到新消息?

For kafka 10 you need to invoke the kafka-reassign-partitions.sh script to change the replication factor of the topic. 对于kafka 10,您需要调用kafka-reassign-partitions.sh脚本来更改主题的复制因子。 Here is a demo of a script that will display the topic before and after the change: 这是一个脚本演示,将显示更改前后的主题:

updateTopicReplication() {
    TOPIC_NAME=$1
    REPLICAS=$2

    echo "****************************************"
    echo "describe $TOPIC_NAME"
    bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic $TOPIC_NAME

    JSON_FILE=./configChanges/${TOPIC_NAME}-update.json
    echo $JSON_FILE
    [ -e $JSON_FILE ] && rm $JSON_FILE

    touch $JSON_FILE

    echo -e "{\"version\":1, \"partitions\":[{\"topic\":\"${TOPIC_NAME}\",\"partition\":0,\"replicas\":[${REPLICAS}]}]}" >> $JSON_FILE

    echo "****************************************"
    echo "updateing $TOPIC_NAME"
    bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file $JSON_FILE --execute

    echo "****************************************"
    echo "describe $TOPIC_NAME"
    bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic $TOPIC_NAME
}

根据我在问题中提到的同一份文档,似乎kafka实际上不支持增加(或减少)主题的复制因子。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 kafka主题分区的最大复制因子是多少 - What is the maximum replication factor for a partition of kafka topic 当代理宕机时,复制因子为 1 的 Kafka 主题分区会发生什么情况? - What happens to partition of Kafka topic with replication factor of 1 when a broker goes down? Kafka 流:PolicyViolationException:主题复制因子必须为 3 - Kafka stream: PolicyViolationException: Topic replication factor must be 3 Kafka-python 获取主题的复制因子 - Kafka-python Get replication factor for a topic 许可证主题的 Kafka Connect 复制因子 - Kafka Connect replication factor for license topic 使用 Kafka 管理器或 Kafka cli 减少主题复制因子 - Reduce topic replication factor with Kafka manager or Kafka cli Kafka 代理从集群中移除且重新分配失败后降低主题复制因子 - Decrease topic replication factor after Kafka brokers removed from cluster and failed reassignments 如何从 Java 代码中获取 Kafka Topic 的复制因子 - How to get Replication Factor of Kafka Topic from Java code 创建Kafka主题时出错: - 复制因子大于可用的代理 - Error creating Kafka topic :- replication factor larger than available brokers kafka-cluster中有多个offsets.topic.replication.factor? - Multiple offsets.topic.replication.factor in kafka-cluster?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM