【问题标题】:What happens if session window ends before retention period and inactivity gap ends after retention period?如果会话窗口在保留期之前结束并且不活动间隙在保留期之后结束,会发生什么情况?
【发布时间】:2020-02-14 00:42:00
【问题描述】:

这是使用 Kafka Streams 的简单会话窗口:

stream
  .groupBy()
  .windowedBy(SessionWindows.with(Duration.ofMinutes(30)).grace(Duration.ofMinutes(0)))
  .aggregate(...) // implementation of aggregate function

使用以下代码,我们可以配置状态存储:

Materialized
  .as(Stores.persistentSessionStore(storeName, Duration.ofHours(2))
  .withCachingEnabled()
  .withLoggingEnabled()
  .withKeySerde(keySerde)
  .withValueSerde(valueSerde)

Documentation 状态:

请注意,保留期必须至少足够长以包含 窗口化数据的整个生命周期,从窗口开始到 窗口结束,并在整个宽限期内。

我们不应用宽限期。但请考虑这种情况:会话窗口在保留期之前结束,但不活动间隙在保留期之后结束。我想知道,是否有会话数据丢失的可能性?清理的力度有多大?

【问题讨论】:

    标签: apache-kafka apache-kafka-streams stream-processing


    【解决方案1】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多