限制 Kafka Streams 的内存使用

Chr*_*ris 5 rocksdb apache-kafka-streams

有没有办法限制或定义 kafka 流应用程序的最大内存使用量?我已经启用了状态存储的缓存,但是当我在 Openshift 中部署时,我的 pod 被 OOM 杀死了。我已经检查过我没有内存泄漏,并且我所有的状态存储迭代器都正在关闭。

我已经将我的 RocksDbConfigSetter 更新为https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning#other-general-options 中的建议,但没有运气。

当我查看 state store 目录时,大小约为 2GB。目前有 50GB 的内存分配给应用程序,但它仍然 OOM

小智 0

计算为您的应用程序创建了多少状态存储以及应用程序的总大小

使用

StreamsConfig.topicPrefix(TopicConfig.RETENTION_BYTES_CONFIG)
Run Code Online (Sandbox Code Playgroud)

它将限制statestore存储的数据以及流应用程序的statestore也保存在kafka主题中