如何在 Kafka 流中动态生成单个事件到多个主题?
我遇到了TopicNameExtractor,但它一次只返回 1 个主题。
是否有其他方法可以为 kafka 流中的多个主题生成单个事件,或者我可以通过组合 KafkaStreams 和 KafkaTemplate 来创建混合版本来生成事件?
这取决于你所说的动态是什么意思。例如,在 Kafka Streams 中,您可以将一个流分成多个分支,这些分支将根据输入记录上的谓词转到不同的主题:
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.confluence.io/platform/current/streams/developer-guide/dsl-api.html