最近,我在Apache Kafka文档中遇到了有关处理Kafka流中乱序消息的文章
https://kafka.apache.org/21/documentation/streams/core-concepts#streams_out_of_ordering
有人可以向我解释以下声明的原因:
在主题分区内,记录的时间戳可能不会随其偏移量而单调增加。由于Kafka Streams将始终尝试按照偏移顺序来处理主题分区中的记录,因此它可能导致在相同主题中具有较大时间戳(但偏移量较小)的记录比具有较小时间戳(但偏移量较大)的记录要早处理。 -分区。
根据我的理解,如果单个分区中的消息是由单个生产者生产的,则其时间戳记必须按不降序排列。消息为什么没有以单调递增的顺序出现?
答案 0 :(得分:0)
Kafka Producer可能会在生成消息时指定时间戳。
标准Java Producer API的示例: https://kafka.apache.org/21/javadoc/org/apache/kafka/clients/producer/ProducerRecord.html#ProducerRecord-java.lang.String-java.lang.Integer-java.lang.Long-K-V-