我有一个需求,我需要使用 Kafka 主题并将其写入 MQ 主题。有人可以告诉我最好的方法吗,我是卡夫卡的新手。
我已经阅读了融合中的IBM MQ 连接器,但不知道如何实现它。
我有一个需求,我需要使用 Kafka 主题并将其写入 MQ 主题。有人可以告诉我最好的方法吗,我是卡夫卡的新手。
我已经阅读了融合中的IBM MQ 连接器,但不知道如何实现它。
将数据从 Kafka 移动到 MQ 的最佳方法是使用 IBM MQ 接收器连接器:https ://github.com/ibm-messaging/kafka-connect-mq-sink
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());
}