【发布时间】:2020-12-10 17:15:59
【问题描述】:
我有一个流,它将消息映射到两个不同的 map() 调用,并进一步被过滤并写入两个不同的主题。
KStream<String, byte[]>[] stream = builder.<String, byte[]>stream("source-topic");
stream.map(logic1OnData).filter(
(key, value) -> {
if (key == null || value == null)
return false;
return value.data() != null;
}).to("topic1", Produced.with(Serdes.String(), Serdes.String())
stream.map(logic2OnData).filter(
(key, value) -> {
if (key == null || value == null)
return false;
return value.data() != null;
}).to("topic2", Produced.with(Serdes.String(), Serdes.String())
有没有办法可以并行运行 stream.map(logc1OnData)... 和 stream.map(logic2OnData)? 看起来他们一个接一个地运行,即第一个地图被执行并写入 topic1 然后执行第二张地图并将其写入主题2 仅供参考.. 我不希望 num.threads.count 因为我的流输入来自单个主题,并且我正在运行同一应用程序的多个实例以从源主题主题中读取以在消费时实现并行性。
我正在寻找的是在执行和写入不同主题时的并行性
【问题讨论】:
标签: apache-kafka apache-kafka-streams kafka-producer-api kafka-topic node-kafka-streams