Kafka Streams窗口加入了保留

问题描述 投票:3回答:1

我们正在使用kafka streams的windows join来加入2个流,我们想知道:

  • 为什么KS在内部主题上增加+24小时?例如,我们有一个1小时的窗口,但内部主题保留25小时。我们可以将其配置为不添加24h吗?
  • KS似乎在窗口中保留了两个流的数据 - 内部主题和状态存储(rocksdb) - 有没有办法只保留连接左侧的流?

[UPDATE]

例如,我们像这样创建JoinWindow:

JoinWindows.of(300000).before(600000).until(3600000)

虽然我可以看到内部主题(对于JOINTHIS和OUTEROTHER)已经创建了

Configs:retention.ms=90000000

这刚刚在我的机器上的空代理(使用confluent cli tool)上进行了测试

apache-kafka apache-kafka-streams
1个回答
6
投票

我将部分回答我自己关于+ 24h的问题:确实文档清楚地在这里谈到这个问题:https://kafka.apache.org/10/documentation/streams/developer-guide/processor-api.html#fault-tolerant-state-stores

默认保留设置为Windows#maintainMs()+ 1天。您可以通过在StreamsConfig中指定StreamsConfig.WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG来覆盖此设置。

这是关于WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG的Javadoc

© www.soinside.com 2019 - 2024. All rights reserved.