我认为我的问题很简单,但我无法弄清楚,
#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 来实现吗?
任何帮助将不胜感激,提前致谢。