KStream 将记录发送到多个流(不是分支)

Mat*_*usz 2 apache-kafka apache-kafka-streams spring-kafka

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

Mat*_*Sax 5

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

KStream stream = ...

stream1 = stream.filter(...);
stream2 = stream.filter(...);
// and so on...
Run Code Online (Sandbox Code Playgroud)

如果stream多次使用变量,则所有记录都将广播到所有下游过滤器(或任何其他运算符),即为每个记录执行每个过滤器。