能否请您帮助我理解摘自Kafka Streams documentation的摘录:
在可能正在处理多个主题分区的流任务中,如果用户将应用程序配置为不等待所有分区都包含一些缓冲的数据,并从时间戳最小的分区中选取来处理下一条记录,则稍后当为其他主题分区获取某些记录时,其时间戳可能小于从另一个主题分区获取的已处理记录的时间。
我不明白:如果选择时间戳最小的分区,为什么以后会得到较小的时间戳?
答案 0 :(得分:3)
我认为重要的是
如果用户将应用程序配置为不等待所有分区包含某些缓冲数据
由于我们不等待所有分区都有一些数据,因此流S1
和S2
(T1
<T2
)可能会发生以下情况:
I2
的T2
到达S2
I2
I1
的T1
到达S1
I1
时间戳比已处理的I2
短如果我们等到所有流都具有数据,我们将从所有可用项目中选择最小的项目。由于我们不这样做,因此时间戳较小的项目可能会被延迟。