Как использовать тему Kafka в теме Consumer MQ

У меня есть требование, когда мне нужно использовать тему Kafka и записать ее в тему MQ. Может кто-нибудь посоветовать мне лучший способ сделать это, я новичок в Кафке.

Я читал о Соединитель IBM MQ в слиянии, но не мог понять, как его реализовать.

Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
0
0
570
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Лучший способ переместить данные из Kafka в MQ — использовать коннектор приемника IBM MQ: https://github.com/ibm-messaging/kafka-connect-mq-sink.

Это соединитель Kafka Connect. README содержит подробности для строительство и Бег it.

Спасибо @Mickael за быстрый ответ. Я следую вашему предложению и постараюсь реализовать то же самое.

Touseef Zaki 28.05.2019 10:50
Ответ принят как подходящий

В Kafka есть компонент под названием Kafka Connect. Он используется для чтения и записи данных в/из Kafka в другие системы, такие как база данных в вашем случае MQ.

Kafka connect может иметь два типа коннекторов

Исходные соединители — чтение данных из внешней системы и запись в Kafka (например, чтение вставленных/измененных строк из таблицы в БД и вставка в тему в Kafka)

Sink Connector — чтение сообщения от Kafka для записи во внешнюю систему.

Добавленная вами ссылка является исходным соединителем, она будет читать сообщения из MQ и писать в Kafka.

Для простого варианта использования вам не нужно подключение Kafka. Вы можете написать простой Кафка потребитель, который будет считывать данные из топика Kafka и записывать их в MQ.

    Properties props = new Properties();
     props.put("bootstrap.servers", "localhost:9092");
     props.put("group.id", "test");
     props.put("enable.auto.commit", "true");
     props.put("auto.commit.interval.ms", "1000");
     props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
     props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
     KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
     consumer.subscribe(Arrays.asList("foo", "bar"));
     while (true) {
         ConsumerRecords<String, String> records = consumer.poll(100);
         for (ConsumerRecord<String, String> record : records)
//Insert code to append to MQ here
             System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
     }

Спасибо @asolanki за ответ, просто хотел узнать, хранятся ли у меня XML-сообщения в теме, нужно ли мне анализировать их при записи в тему MQ?

Touseef Zaki 28.05.2019 11:01

Зависит от схемы сообщения, которое вы храните в MQ. Если это xml, то не требуется, тогда как, скажем, если это json или другой формат, вам это нужно.

asolanki 28.05.2019 13:25

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