从Kafka消费者创建新的生产者?

时间:2018-11-14 06:27:50

标签: apache-kafka kafka-consumer-api kafka-producer-api

如何使用Java从现有的Consumer中创建新的Kafka Producer?

2 个答案:

答案 0 :(得分:0)

您不能从KafkaConsumer实例创建KafkaProducer。

您必须使用与生产者相同的连接设置来显式创建KafkaProducer。

考虑到您提到的用例(将数据从一个主题复制到另一个主题),我建议使用Kafka Streams。实际上,Kafka中确实有一个示例可以做到这一点:https://github.com/apache/kafka/blob/trunk/streams/examples/src/main/java/org/apache/kafka/streams/examples/pipe/PipeDemo.java

答案 1 :(得分:0)

我将建议使用Kafka Streams库。它从kafka主题读取数据并进行一些处理,然后写回另一个主题。

对您来说,这可能是更简单的方法。 https://kafka.apache.org/documentation/streams/

当前限制是,源群集和目标群集应与Kafka Streams相同。 否则,您需要使用Processor API定义另一个目标群集。

另一种方法是简单地在消费者程序中定义生产者。只要您的规则匹配(基于偏移量或任何条件),请调用producer.send()方法