Как перенести тему Kafka, используемую на отдельном сервере Kafka, в кластер Kafka с фактором репликации 2?

Я использую один сервер Kafka с несколькими производителями и потребителями. Теперь я хочу реализовать кластер Kafka, добавив еще одного брокера. Как я могу сделать это, используя ту же тему с фактором репликации.

1 ответ

Теперь вы переходите в кластер с двумя брокерами 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.

Создайте увеличение-репликации-фактор.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-803918d8d244 https://kafka.apache.org/documentation/

Надеюсь, это будет полезно для вас.

Другие вопросы по тегам