【发布时间】:2019-07-27 01:03:23
【问题描述】:
我正在尝试编写一个 Kafka 流,我必须加入两个流,我想问一下哪个选项更有效?
我有一个带有 AvroObject1 的 Kafka TopicA 和 1000 万个 AvroObject1,另一个带有 AvroObject2 的 TopicB 和 50000 个 AvroObject2。
以下哪种流连接配置会更有效(或者根本不会有任何区别?)
avroObject1Stream
.join(avroObject2Stream)
或
avroObject2Stream
.join(avroObject1Stream)
作为后续问题,在 TopicA 我有 1 天的保留期和 TopicB 10 天的保留期,我使用以下 JoinWindows 配置....
avroObject1Stream
.join(avroObject2Stream,
JoinWindow.of(Duration.ofDays(10)).grace(Duration.ofDays(10)))
现在我知道流加入主题的日志保留时间是 JoinWindows 维护时间 + 1 天(开箱即用),但这对于 TopicA 1 天保留意味着什么,AvroObject1 会在它们年长时从 TopicA 中消失1 天,但 1 天后它们是否仍会在 Stream Join Topic 中可见,或者 Kafka 保留操作会使它们从 Join Topic 中消失?
谢谢解答...
【问题讨论】:
标签: apache-kafka apache-kafka-streams