为了账号安全,请及时绑定邮箱和手机立即绑定

Kafka kstream-kstream 加入滑动窗口内存使用量随着时间的推移而增长,直到 OOM

Kafka kstream-kstream 加入滑动窗口内存使用量随着时间的推移而增长,直到 OOM

眼眸繁星 2022-07-27 21:52:52
我在使用 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 分钟,看看是否会发生变化,但事实并非如此。我需要了解如何改变这种情况。
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

窗口大小不会决定您的存储要求,而是连接的宽限期。为了处理乱序记录,数据的存储时间比窗口大小要长。在较新的版本中,需要始终通过JoinWindows. ofTimeDifferenceAndGrace(...)JoinWindows.of(...).grace(...)在旧版本中,您可以通过-- 如果未设置,则默认为 24 小时来设置宽限期。

配置WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG配置数据在集群中存储多长时间。因此,您可能也想减少它,但它无助于减少客户端存储需求。


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信