如何同时创建组件-卡夫卡使用者和卡夫卡生产者?

时间:2020-05-10 18:24:43

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

我正在尝试创建一个组件,该组件使用一个主题中的数据,进行处理并将其发送到另一个主题,即,我需要使我的组件既是消费者又是生产者。 如何在Spring Boot应用程序中配置它?

1 个答案:

答案 0 :(得分:0)

听起来像您正在寻找的是Kafka Streams API。 它是一种开放源Java API,可通过读取一个主题,执行处理步骤并写入另一个主题来操纵飞行中的事件。 因此,它既充当生产者又充当消费者。 有关示例,请参见Kafka Streams documentation

为生产者和消费者设置不同的Serde配置:

 KStream<String, String> wordCountInputStream = streamsBuilder.stream("word-count-input", Consumed.with(Serdes.String(), Serdes.String()));
        KTable<String, Long> wordCounts = wordCountInputStream.mapValues(value -> value.toLowerCase()).....

        wordCounts.toStream().to("word-count-output", Produced.with(Serdes.String(), Serdes.Long()));