Stream 会话窗口与Kafka流的行为不符合预期
我是一个有点新手卡夫卡流工作,但我注意到的是一个行为,我不期待。我已经开发了一个应用程序,它是从6个主题消费。我的目标是通过内部字段对每个主题的活动进行分组(或加入)。这很好。但我的问题是窗口时间,它看起来像是每个周期的结束时间,影响到所有聚集在这段时间内。是否只有一个计时器用于同时进行的所有聚合?。我希望在流获得配置的30秒时退出聚合过程。我认为这是可能的,因为我看到了Windowed windowedRegion变量的数据,windowedRegion.window().start()和windowedRegion.window().end()值在每个流中都是不同的。 这是我的代码:Stream 会话窗口与Kafka流的行为不符合预期,stream,apache-kafka,apache-kafka-streams,Stream,Apache Kafka,Apache Kafka Streams,我是一个有点新手卡夫卡流工作,但我注意到的是一个行为,我不期待。我已经开发了一个应用程序,它是从6个主题消费。我的目标是通过内部字段对每个主题的活动进行分组(或加入)。这很好。但我的问题是窗口时间,它看起来像是每个周期的结束时间,影响到所有聚集在这段时间内。是否只有一个计时器用于同时进行的所有聚合?。我希望在流获得配置的30秒时退出聚合过程。我认为这是可能的,因为我看到了Windowed windowedRegion变量的数据,windowedRegion.window().start()和wi
streamsBuilder
.stream(topicList, Consumed.with(Serdes.String(), Serdes.String()))
.groupBy(new MyGroupByKeyValueMapper(), Serialized.with(Serdes.String(), Serdes.String()))
.windowedBy(SessionWindows.with(windowInactivity).until(windowDuration))
.aggregate(
new MyInitializer(),
new MyAggregator(),
new MyMerger(),
Materialized.with(new Serdes.StringSerde(), new PaymentListSerde())
)
.mapValues(
new MyMapper()
)
.toStream(new MyKeyValueMapper())
.to(consolidationTopic,Produced.with(Serdes.String(), Serdes.String()));
我不确定这是否是您要问的,但每个聚合(每个关键会话窗口)确实可能会被更新多次。通常,您不会在“整合”主题的每个窗口中只收到一条消息,以及该会话窗口的最终结果。这里将更详细地解释这一点:
我不确定这是否是您要问的问题,但每个聚合(每个关键会话窗口)确实可能会被更新多次。通常,您不会在“整合”主题的每个窗口中只收到一条消息,以及该会话窗口的最终结果。这里将更详细地解释这一点:
谢谢,非常感谢。这回答了我的问题。谢谢,非常感谢。这回答了我的问题。