0

我有一个需求,我需要使用 Kafka 主题并将其写入 MQ 主题。有人可以告诉我最好的方法吗,我是卡夫卡的新手。

我已经阅读了融合中的IBM MQ 连接器,但不知道如何实现它。

4

2 回答 2

1

将数据从 Kafka 移动到 MQ 的最佳方法是使用 IBM MQ 接收器连接器:https ://github.com/ibm-messaging/kafka-connect-mq-sink

这是一个 Kafka Connect 连接器。自述文件包含构建运行它的详细信息。

于 2019-05-28T08:35:45.203 回答
0

Kafka 有一个名为 Kafka Connect 的组件。它用于从 Kafka 读取数据并将数据写入其他系统,例如您的案例 MQ 中的数据库。

Kafka connect 可以有两种连接器

源连接器 - 从外部系统读取数据并写入 Kafka(例如,从数据库中的表中读取插入/修改的行并插入到 Kafka 中的主题中)

接收器连接器 - 从 Kafka 读取消息写入外部系统。

您添加的链接是一个源连接器,它将从 MQ 读取消息并写入 Kafka。

对于简单的用例,您不需要 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());
     }
于 2019-05-28T08:52:07.377 回答