gpt4 book ai didi

java - 有没有一种有效的方法可以外部连接多个(超过 2 个)kafka 主题?

转载 作者:行者123 更新时间:2023-11-30 10:28:11 25 4
gpt4 key购买 nike

我想通过键外部连接几个(通常是 2-10 个)Kafka 主题,最好使用流式 API。所有主题都将具有相同的键和分区。执行此连接的一种方法是为每个主题创建一个 KStream 并链式调用 KStream.outerJoin:

stream1
.outerJoin(stream2, ...)
.outerJoin(stream3, ...)
.outerJoin(stream4, ...)

然而,documentation KStream.outerJoin 表明每次调用 outerJoin 都会具体化它的两个输入流,因此上面的示例不仅会具体化流 1 到 4,还会具体化 stream1.outerJoin (stream2, ...)stream1.outerJoin(stream2, ...).outerJoin(stream3, ...)。与直接加入4个流相比,会有很多不必要的序列化、反序列化和I/O。

上述方法的另一个问题是 JoinWindow 在所有 4 个输入流中不一致:一个 JoinWindow 将用于连接流 1 和 2,但是然后将使用一个单独的加入窗口来加入这个流和流 3 等。例如,我为每个加入指定一个 10 秒的加入窗口,并且具有特定键的条目出现在流 1 的 0 秒,流 2 的 6秒,流 3 在 12 秒,流 4 在 18 秒,加入的项目将在 18 秒后输出,导致过高的延迟。结果取决于连接的顺序,这看起来很不自然。

是否有使用 Kafka 进行多路连接的更好方法?

最佳答案

目前我不知道 Kafka Stream 中有更好的方法,但它正在制作中:

https://cwiki.apache.org/confluence/display/KAFKA/KIP-150+-+Kafka-Streams+Cogroup

关于java - 有没有一种有效的方法可以外部连接多个(超过 2 个)kafka 主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44811384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com