Кафка MirrorMaker 2.0 не копирует данные - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь скопировать кластер Kafka с помощью MirrorMaker 2.0. Я использую следующие mm2.properties:

# mm2.properties
clusters=source, dest

source.bootstrap.servers=kafka-1:9092,kafka-2:19092,kafka-3:29092
dest.bootstrap.servers=kafka-4:39092,kafka-5:49092,kafka-6:59092

source->dest.enabled=true

Я вижу, что когда MirrorMaker запускается, он создает свои собственные темы. Например, для исходного кластера создается: mm2-configs.dest.internal со следующим содержимым:

{
   "properties":{
      "connector.class":"org.apache.kafka.connect.mirror.MirrorSourceConnector",
      "source.cluster.producer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
      "source.cluster.alias":"dest",
      "source.cluster.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
      "target.cluster.producer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
      "enabled":"false",
      "target.cluster.admin.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
      "target.cluster.alias":"source",
      "target.cluster.consumer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
      "name":"MirrorSourceConnector",
      "target.cluster.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
      "source.cluster.admin.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
      "source.cluster.consumer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092"
   }
}

и в целевом кластере mm2-configs.source.internal topi c со следующим содержимым:

{
   "properties":{
      "connector.class":"org.apache.kafka.connect.mirror.MirrorSourceConnector",
      "source.cluster.producer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
      "source.cluster.alias":"source",
      "source.cluster.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
      "target.cluster.producer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
      "enabled":"true",
      "target.cluster.admin.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
      "target.cluster.alias":"dest",
      "target.cluster.consumer.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
      "name":"MirrorSourceConnector",
      "target.cluster.bootstrap.servers":"kafka-4:39092,kafka-5:49092,kafka-6:59092",
      "source.cluster.admin.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092",
      "source.cluster.consumer.bootstrap.servers":"kafka-1:9092,kafka-2:19092,kafka-3:29092"
   }
}

Но когда я пытаюсь отправлять сообщения в исходный кластер (kafka-1, kafka-2, kafka-3) - во второй кластер ничего не копируется.

Что мне не хватает?

Спасибо за любую помощь Thx,

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Я думаю, я нашел (с помощью моего друга), в чем была проблема. В случае, если topi c действительно NOT существует до запуска MirrorMaker, репликация не произойдет. Topi c должен существовать в исходном кластере Kafka.

Я использовал Java продюсер с включенным автоматическим созданием topi c. Кажется, автоматическое создание c topi c не запускает MirrorMaker для запуска репликации.

Я действительно не знаю, является ли это в соответствии с заданным поведением при определении source->dest.enabled=true или может быть связано с устранением нескольких дней go ошибка: https://github.com/apache/kafka/pull/7745 .

0 голосов
/ 23 января 2020

Ваши конфигурационные файлы выглядят нормально. Однако эти bootstrap серверные порты выглядят отключенными. 19092, 29092 и др. c. Это обычно 9092. Можете ли вы попробовать изменить их обратно на 9092?

...