当前位置: 首页 > 知识库问答 >
问题:

Kafka流中的无序数据原因

汲雅珺
2023-03-14

你能帮我理解这个摘录,从Kafka流留档:

在可能正在处理多个主题分区的流任务中,如果用户将应用程序配置为不等待所有分区都包含一些缓冲数据,并从具有最小时间戳的分区中选取以处理下一条记录,则稍后在为其他主题分区提取某些记录时,它们的时间戳可能比从另一个主题分区获取的已处理记录小。

我不明白其中的逻辑:如果您选择具有最小时间戳的分区,为什么以后会获得较小的时间戳?

共有1个答案

经骁
2023-03-14

我觉得重要的是

如果用户将应用程序配置为不等待所有分区包含一些缓冲数据

由于我们不等待所有分区都有一些数据,因此流S1S2T1

  1. 时间戳为T2的I2到达S2

如果我们等到所有流都有数据,我们就会从所有可用项中选择最小的项。由于我们不知道,时间戳较小的项目可能会延迟。

 类似资料:
  • 我正在创建一个简单的Kafka Streaming应用程序。我的Producer正在为一个主题生成protobuf序列化消息,我在Kafka Streaming应用程序中使用该主题来处理消费者消息。我正在尝试使用在我的应用程序中。yml文件。我发现以下错误。 错误: 我的配置文件: 在日志中打印实际反序列化消息的处理方法: 请帮我解决这个问题。如何在Kafka Stream中使用protobuf反

  • 假设有Kafka主题顺序。数据以JSON格式存储: 定义订单的状态(待定-1,已完成-2)。 完成后如何在“已完成”上进行更改? 正如我所知,Kafka主题是不可变的,我不能更改消息JSON,只需创建一个带有更改值的新消息,对吗?

  • 我最近看到了这篇关于Apache Kafka文档的文章,内容涉及如何处理Kafka流中的无序消息 https://kafka.apache.org/21/documentation/streams/core-concepts#streams_out_of_ordering 有人能给我解释一下下面这句话背后的原因吗: 在主题分区中,记录的时间戳可能不会随着它们的偏移量单调地增加。由于Kafka流总是

  • 我正在从Spring XD迁移到Spring Cloud Data Flow。当我寻找模块列表时,我意识到一些源码没有在Spring Cloud Flow中列出--其中一个是Kafka源码。 我的问题是为什么在spring cloud data flow中KAFKA源从标准源列表中删除?

  • 我有一个Apache Kafka2.6制作人,它写的主题-A(TA)。我还有一个Kafka streams应用程序,它使用TA并写入topic-B(TB)。在streams应用程序中,我有一个自定义的时间戳提取器,它从消息负载中提取时间戳。 对于我的一个失败处理测试用例,我在应用程序运行时关闭了Kafka集群。 当生产者应用程序试图向TA写入消息时,它无法写入,因为集群已关闭,因此(我假设)缓冲了

  • 在启动应用程序时,Kafka流出现了奇怪的错误 结果,关于失败流的错误: