首页 > 解决方案 > KStream 将记录发送到多个流(不是分支)

问题描述

有没有办法进行类似分支的操作​​,但将记录放置在谓词评估为真的每个输出流中?Brach 将记录放入第一个匹配项(文档:在第一个匹配项上将记录放入一个且只有一个输出流)。

标签: apache-kafkaapache-kafka-streamsspring-kafka

解决方案


您可以“广播”并单独过滤每个流:

KStream stream = ...

stream1 = stream.filter(...);
stream2 = stream.filter(...);
// and so on...

如果您stream多次使用变量,则所有记录都会广播到所有下游过滤器(或任何其他操作员),即每个过滤器都会针对每个记录执行。


推荐阅读