【问题标题】:kafka streams windowing and records timestampkafka 流窗口和记录时间戳
【发布时间】:2022-12-08 21:40:56
【问题描述】:

我是 kafka 流的新手,我有一些不清楚的地方,这就是为什么我需要帮助来了解它是如何工作的:

1. 当我在 kafkastreams 中定义 customTimeExtractor 时,kafka 是否会根据我定义的时间戳对中间主题中的记录进行重新排序?

2. 例如,对于 TumblingWindow,它如何与我定义的新时间戳一起使用?窗口将在检测到记录的第一个时间戳时启动?

谢谢!

【问题讨论】:

    标签: java apache-kafka apache-kafka-streams


    【解决方案1】:
    1. 当您在 Kafka Streams 中定义自定义时间戳提取器时,输入主题中的记录不会根据提取的时间戳重新排序。相反,提取的时间戳用于根据您配置的窗口策略将每条记录分配给特定的时间窗口。例如,如果您使用大小为 10 分钟的滚动窗口,记录将被分组到每个 10 分钟的时间窗口中,从最早提取的时间戳开始。

    2. 对于滚动窗口,窗口将在检测到具有提取的时间戳的第一条记录时启动。然后窗口将继续收集记录,直到到达窗口的末尾,此时它将关闭并发出聚合结果。根据传入记录的提取时间戳,此过程将针对每个后续窗口继续。

      通常,Kafka Streams 窗口操作的行为由时间戳提取器、窗口策略以及配置的窗口大小和持续时间的组合决定。您可以尝试不同的配置以了解它们如何影响流中记录的分组和处理。

    【讨论】:

    猜你喜欢
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多