KStream-KStream-Join 在连续执行时有不同的结果

KStream-KStream-Join with different Results on consecutive executions

因为我不知道我的question是否会重新开放..这里有一个更准确的问题。

我有 StreamA(包含在 30 分钟间隔内生产的产品)和 StreamB(包含来自 4 个不同传感器的测量值,每 5 分钟生成一次测量值)。这两个流连接在一个公共密钥上。 StreamC 是此连接的结果,包含 measurementEnrichedProducts。

我有 ~15k 产品和 ~250k 测量值。以下是结果:


Run   Num records within StreamC
1     149,389
2     149,362
3     149,363
4     149,411

每个 运行 具有完全相同的配置,streamA/B 中的事件也相同。

真不知道为什么会这样。有没有可能底层statestore有什么问题?

我重新启动应用程序的速度太快了...

在玩 max.task.idle.ms-property 时,我注意到结果很稳定(每次执行的数量相同)但比以前少了。让应用程序 运行 超过 15 分钟后 (max.task.idle.ms=600000[10minutes]) 我收到了更多结果,streamC 中的记录数也很稳定。

再次删除 max.task.idle.ms 并等待足够长的时间会导致相同的结果。

我怀疑问题的发生是由于 out-of-order 输入数据和内部缓冲区未被填充。