Kafka Streams创建时间与日志附加时间



如果Kafka broker配置了Log-Append Time,那么无论生产者/流设置了什么时间戳,broker都会覆盖消息时间戳吗?

从流时间-文档中,我得到的印象是CreateTime有些不可靠-时间戳有时只被转发(例如,当使用context.forward()时(,有时被覆盖(例如,在使用puntuate()时(。因此,我想知道Log-Append Time在设置消息时间戳时是否优先(即覆盖流设置的时间戳(?

是的,LogAppendTime优先,这意味着如果将主题配置为使用LogAppendTime,则Streams应用程序设置的时间戳(无论如何生成(将被忽略,并在生成输出记录时由代理用日志附加时间覆盖。

此外,我不认为CreateTime在你看来是不可靠的。punctuate()不会覆盖现有的时间戳-它用于在特定时间点生成新记录,因此没有以前的CreateTime可用-流必须选择新的时间戳。

ProducerRecord类的javadoc确认LogAppendTime优先:

如果主题配置为使用LogAppendTime,则在将消息附加到其日志时,broker将使用broker本地时间覆盖生产者记录中的时间戳。

相关内容

  • 没有找到相关文章

最新更新