У меня есть требование, когда мне нужно использовать тему Kafka и записать ее в тему MQ. Может кто-нибудь посоветовать мне лучший способ сделать это, я новичок в Кафке.
Я читал о Соединитель IBM MQ в слиянии, но не мог понять, как его реализовать.
Лучший способ переместить данные из Kafka в MQ — использовать коннектор приемника IBM MQ: https://github.com/ibm-messaging/kafka-connect-mq-sink.
Это соединитель Kafka Connect. README содержит подробности для строительство и Бег it.
В 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?
Зависит от схемы сообщения, которое вы храните в MQ. Если это xml, то не требуется, тогда как, скажем, если это json или другой формат, вам это нужно.
Спасибо @Mickael за быстрый ответ. Я следую вашему предложению и постараюсь реализовать то же самое.