首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >org.apache.kafka.common.network.Selector -通向面向对象模型

org.apache.kafka.common.network.Selector -通向面向对象模型
EN

Stack Overflow用户
提问于 2021-11-05 14:42:46
回答 1查看 68关注 0票数 0

所以我有一个Java服务,它在一个while循环中使用Kafka来获取kafka-clients主题。在执行大约3-5分钟后,我在运行单个使用者时遇到了OOM (内存不足)问题。

我捕获了一个堆转储,它指向org.apache.kafka.common.network.Selector占用已分配的内存。最终我得到了GC overhead limit exceeded错误。

我已经关注了以下两个资源,但没有运气,因为我的问题似乎与SSL无关(我使用的是PlainText)。

Kafka JIRA

Debugging a memory leak in Apache Kafka®

以下是我的一些kafka属性:

代码语言:javascript
运行
复制
connections.max.idle.ms = 540000
default.api.timeout.ms = 60000
enable.auto.commit = true
exclude.internal.topics = true
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
max.partition.fetch.bytes = 20000000
max.poll.interval.ms = 30000
max.poll.records = 1000
EN

回答 1

Stack Overflow用户

发布于 2021-11-05 17:21:56

可能已经弄明白了:

当我的客户连接到代理时,属性fetch.max.bytes默认为52428800,即每批52MB。

我的客户每隔100ms轮询一次。我假设这个频率,再加上每个批处理的大小,会让垃圾收集器应接不暇。我将此参数修改为一个更合理的数字,现在一切似乎都很正常。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69855016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档