KStream / KTable连接中的Kafka Stream时间戳同步

时间:2019-12-30 20:26:52

标签: apache-kafka apache-kafka-streams

具有内部联接KStream / KTable和以下消息序列:

table_evt_at_t1-> stream_evt_at_t2-> table_evt_at_t3-> stream_evt_at_t4

联接触发:

(stream_evt_at_t2,table_evt_at_t1)+(stream_evt_at_t4,table_evt_at_t3)

到目前为止,一切正常。 当我重置流应用程序(使用kafka-streams-application-reset.sh)并重播所有事件时,出现意外结果:

(stream_evt_at_t2,table_evt_at_t3)+(stream_evt_at_t4,table_evt_at_t3)

在处理事件时,Kafka Stream似乎没有考虑时间戳。它将填充Ktable,然后处理KStream,以获取两个KStream事件的Ktable的最后一个值(table_evt_at_t3)。

请注意,我使用的是Kafka Streams 2.3.1,自定义的TimestampExtractor和[KIP-353] [1]建议的属性max.task.idle.ms = 10 * 1000L

这是预期的行为吗?

0 个答案:

没有答案