【发布时间】:2021-04-18 01:47:23
【问题描述】:
我在同一个 flink 作业中阅读 2 个 kafka 主题。
-
Stream1: 来自第一个主题的消息保存到rocksdb,然后与stream2联合。 -
Stream2: 来自第二个主题的消息被 stream1 保存的状态丰富了,然后它将与 stream1 合并。
主题 1 和主题 2 是不同的来源,但基本上两个来源的输出是相同的。我必须使用来自 topic1 的数据来丰富来自 topic2 的数据。
这里是流程;
val stream1 = readKafkaTopic1().keyBy(_.memberId).map(saveMemberDetailsToRocksDB)
val stream2 = readKafkaTopic2().keyBy(_.memberId).map(readMemberDetailsAndEnrich)
stream1.union(stream2).addSink(kafkaProducer)
这是问题;
- 流动性好吗?
-
stream2可以访问stream1保存的相同memberId的状态吗?
【问题讨论】:
-
您的意思是您手动使用 RocksDB 还是仅使用 RocksDb 支持的 Flink 状态?
-
由 RocksDb 支持的 Flink 状态,而不是手动支持
标签: apache-flink flink-streaming