Kafka Streams:手动连接时通过存储计算生成的滞后(延迟)

时间:2019-02-07 16:41:31

标签: join apache-kafka apache-kafka-streams

我有一个Kafka Streams拓扑,其中通过DSL聚合创建了一个会话存储。 (这里的所有主题都是共同分区的。)

稍后,我在另一个主题(transformValues)上从orders使用此存储,查询该存储以生成包含一个订单及其会话的类似连接的输出。

但是,存储量在某些高峰时会产生计算滞后,而orders主题则不会。因此,即使事件按顺序到达系统,order也不会在其中找到其sessions

因此,当订单到达时,有时商店中还没有填充以前尚未处理的数据,因此在商店中查找时,找不到任何条目。

我可以看到将order的{​​{1}}与会话存储的KStream版本一起加入的解决方案,以便能够在{{1 }}和KStream,生成新版本。

但是这增加了复杂性,而且IIRC联接还会创建一个额外的窗口主题(我已经在其他地方使用了该会话存储,所以我仍然必须拥有它)。

还有其他解决方案,需要权衡吗?

0 个答案:

没有答案