使用Kafka Streams将单个事件发布到多个主题

mnemlml8  于 11个月前  发布在  Apache
关注(0)|答案(1)|浏览(144)

如何在Kafka流中动态生成单个事件到多个主题?
我遇到了TopicNameExtractor,但它一次只返回一个主题。
有没有其他方法可以在Kafka流中为多个主题生成单个事件,或者我可以通过组合KafkaStreamsKafkaTemplate来创建混合版本来生成事件?

42fyovps

42fyovps1#

这取决于你对动态的理解。例如,在Kafka Streams中,你可以将一个流分成几个分支,这些分支将根据输入记录上的 predicate 转到不同的主题:

Map<String, KStream<String, Long>> branches =
    stream.split(Named.as("Branch-"))
        .branch((key, value) -> key.startsWith("A"),  /* first predicate  */
             Branched.as("A"))
        .branch((key, value) -> key.startsWith("B"),  /* second predicate */
             Branched.as("B"))
.defaultBranch(Branched.as("C"))

字符串
参见https://docs.confluent.io/platform/current/streams/developer-guide/dsl-api.html

相关问题