Как перенести тему 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/
Надеюсь, это будет полезно для вас.