手动选择Apache Kafka主题分区副本的配置位置的方法

做法 (yà fǎ)

如果您想在Kafka创建主题时将分区和副本分配给特定的Kafka Broker,您可以在创建主题时指定replica-assignment选项。

$ ${KAFKA_HOME}/bin/kafka-topics.sh --create --topic replica-assignment-test --zookeeper localhost:2181  --replica-assignment 1:2,2:3

使用ID来指定要配置的Broker(如上例中的1和2)。
以上例子中,第一个分区的BrokerID是1和2,第二个分区的BrokerID是2和3。
换句话说,这个replica-assignment-test主题由2个分区组成,每个分区的副本数量为2。

当我确认时,发现它们已经被正确地布置好了。

$ ${KAFKA_HOME}/bin/kafka-topics.sh --describe --zookeeper localhost --topic replica-assignment-test
Topic:replica-assignment-test   PartitionCount:2    ReplicationFactor:2 Configs:
    Topic: replica-assignment-test  Partition: 0    Leader: 1   Replicas: 1,2   Isr: 1,2
    Topic: replica-assignment-test  Partition: 1    Leader: 2   Replicas: 2,3   Isr: 2,3

顺便提一下,每个分区的副本中的Leader似乎是根据冒号前指定的内容来选择的。

广告
将在 10 秒后关闭
bannerAds