【发布时间】:2019-03-12 10:38:08
【问题描述】:
我在使用 kstream 连接时遇到问题。我所做的是从一个主题中分离出 3 种不同类型的消息到新的流中。 然后对两个流进行一次内连接,创建另一个流,最后我对新流和最后一个剩余流进行最后一次左连接。
连接的窗口时间为 30 秒。
这样做是为了过滤掉一些被其他消息覆盖的消息。
我在 kubernetes 上运行此应用程序,并且 pod 的磁盘空间无限增长,直到 pod 崩溃。
我意识到这是因为连接将数据本地存储在 tmp/kafka-streams 目录中。
目录被称为: KSTREAM-JOINTHIS... KSTREAM-OUTEROTHER..
它存储来自 RocksDb 的 sst 文件,并且这些文件无限增长。
我的理解是,因为我使用 30 秒的窗口时间,所以这些应该在特定时间后被刷新,但不是。
我还将 WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG 更改为 10 分钟,看看是否会发生变化,但事实并非如此。
我需要了解如何更改。
【问题讨论】:
标签: java apache-kafka apache-kafka-streams rocksdb rocksdb-java