使用主题列表映射 KafkaStream

时间:2021-06-02 21:43:43

标签: java apache-kafka kafka-consumer-api apache-kafka-streams spring-kafka

我认为我的问题很简单,但我无法弄清楚,

#1:我有一个 db 表,其中有不同的供应商和他们的 kafka 主题条目

VENDOR     TOPIC
-----------------------
Paytm     PaytmTestTopic
Phonepe   PhonePeTestTopic
GPay      GpayTestTopic
Roger     RogerTestTopic

还有更多条目。

#2:我有一个 KafkaStream 正在监听交易主题。

    final StreamsBuilder builder = new StreamsBuilder();
    final KStream<String, String> stream = builder.stream("payment_txn_topic");

#3: 流有一个反序列化器、工厂和块序列化器来转换输出

    stream.transformValues(eventDeserializer)
            .flatMapValues(chunkFactory)
            .transformValues(chunkSerializer)
            .to("");

4:我需要动态提取主题名称 我知道如何使用 TopicNameExtractor 获取主题名称并将其传递给 .to() 进行输出。

但这是我的用例:

我的活动会有点 {"modeList":[{"mode":"Paytm"}, {"mode":"Roger"}]}

所以现在我需要提取器,以便它可以订阅“PaytmTestTopic”和“RogerTestTopic”,即根据事件中的模式作为列表。

Q1:由于我们只能从 TopicNameExtractor 返回一个主题名称,我如何在单个事件中针对多个满足条件执行此操作?

Q2:无论如何要根据要发送的转换数据使用 Extractor 吗?因为 TopicNameExtractor 处理接收到的事件。

Q3:我可以使用动态分支和/或 KTable 来实现吗?

任何帮助将不胜感激,提前致谢。

0 个答案:

没有答案
相关问题