我有一个需求,我需要使用Kafka主题并将其写入MQ主题。有人可以建议我最好的方法吗,我是Kafka的新手。
我已经了解了IBM MQ Connector的合流情况,但不知道如何实现它。
答案 0 :(得分:1)
将数据从Kafka迁移到MQ的最好方法是使用IBM MQ接收器连接器:https://github.com/ibm-messaging/kafka-connect-mq-sink
答案 1 :(得分:0)
Kafka具有一个称为Kafka Connect的组件。它用于从Kafka到其他系统(如您的MQ)的数据库中读写数据。
Kafka connect可以有两种连接器
源连接器-从外部系统读取数据并写入Kafka(例如,从DB中的表读取插入/修改的行并插入Kafka中的主题)
接收器连接器-从Kafka读取消息,并将其写入外部系统。
您添加的链接是一个源连接器,它将从MQ读取消息并写入Kafka。
对于简单用例,您不需要Kafka连接。您可以编写一个简单的Kafka consumer,它将从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());
}