Scala 从KafkaStreams输入流获取记录并发送到两个输出流的最佳选项是什么?

Scala 从KafkaStreams输入流获取记录并发送到两个输出流的最佳选项是什么?,scala,apache-kafka,apache-kafka-streams,Scala,Apache Kafka,Apache Kafka Streams,在Scala中,我使用的是import org.apache.kafka.streams.KafkaStreams,能够读取输入流,轻松地进行一些计算并发送到输出流。有没有办法通过分支或过滤器从输入流中获取结果记录并发送到两个输出流 branch正是您想要的。它返回一个KStream数组,您可以分别将发送到两个不同的主题() 如果要向两个主题发送相同的流,请使用至,然后使用至如何使用?似乎所有的例子都要求使用输入流中有问题的对象的谓词。i、 例如:builder.stream[String,Ob

在Scala中,我使用的是
import org.apache.kafka.streams.KafkaStreams
,能够读取输入流,轻松地进行一些计算并发送到输出流。有没有办法通过
分支
过滤器
从输入流中获取结果记录并发送到两个输出流

branch
正是您想要的。它返回一个
KStream
数组,您可以分别将
发送到两个不同的主题()


如果要向两个主题发送相同的流,请使用
,然后使用

如何使用?似乎所有的例子都要求使用输入流中有问题的对象的谓词。i、 例如:
builder.stream[String,Object](输入主题).mapValues(v=>ValidationFormat.from(v.asInstanceOf[GenericRecord])).mapValues(someResult=>{….})
如果来自mapValues的结果是两个选项的列表[String]元素,如果第一个元素为空,我想将其发送到topicA如果第二个元素为空,则发送到topicBYes,使用谓词对象数组。就像我之前说过的,模式注册中心应该负责Avro验证。将一个谓词设为not empty,然后最后一个谓词为true以捕获其余事件。在映射值之后使用branch,然后将结果分配给KStreams对象数组的一个变量,然后向
调用写入两行独立的
,并为数组编制索引,如示例所示。您想拆分还是广播?对于拆分,使用
branch()。如果要多播或广播,
branch()
将不起作用:cf: