Kafka Streams:一条记录​​到多条记录

use*_*255 1 apache-kafka kafka-consumer-api kafka-producer-api apache-kafka-streams

鉴于:我在Kafka中有两个主题让我们说主题A和主题B.Kafka Stream从主题A读取记录,处理它并产生与消费记录对应的多个记录(比如说记录A和记录B).现在,问题是如何使用Kafka Streams实现这一目标.

KStream<String, List<Message>> producerStreams[] = recordStream.mapValues(new ValueMapper<Message, List<Message>>() {
        @Override
        public List<Message> apply(final Message message) {
          return consumerRecordHandler.process(message);
        }
    }).*someFunction*()
Run Code Online (Sandbox Code Playgroud)

这里,读取的记录是Message; 处理完毕后,返回Message列表.如何将此列表分成两个生产者流?任何帮助将不胜感激.

Mat*_*Sax 13

我不确定我是否正确理解了这个问题,而且我也不明白@Abhishek的答案:(

如果您有输入流,并且希望每个输入记录获得零个,一个或多个输出记录,则应该应用flatMap()flatMapValues()(取决于您是否要修改密钥).

您还询问"如何将此列表划分为两个生成器流?" 如果您要将一个流拆分为多个,则可以使用branch().

有关更多详细信息,请参阅文档:http://docs.confluent.io/current/streams/developer-guide.html#stateless-transformations