我有一个kafka流拓扑,其中通过dsl聚合创建会话存储(这里的所有主题都是共同分区的)。
我后来从一家商店用这个商店 transformValues
换个主题( orders
),查询此存储以生成包含一个订单及其会话的类似联接的输出。
但是,当出现一些卷峰值时,存储会产生计算延迟,而 orders
主题没有。因此,即使事件按顺序到达系统 order
不会找到它的 sessions
在那里。
因此,当订单到达时,存储区有时还没有填充以前的、尚未处理的数据,因此在存储区中查找时,找不到任何条目。
我能看到加入的解决办法 order
的 KStream
用一个 KStream
会话存储的版本,以便能够对两个到达的 order
和一个 session
,正在生成新版本。
但这增加了复杂性,而且iirc-the-join将创建一个额外的窗口主题(我已经在其他地方使用了该会话存储,所以我仍然需要它)。
有没有其他的策略来解决这个问题,需要做哪些权衡?
暂无答案!
目前还没有任何答案,快来回答吧!