java - Spring Integration 一直消耗更多内存

标签 java spring spring-boot memory-leaks spring-integration

我们有一个 Spring Boot 应用程序,带有 Spring Integration 上下文,从 ActiveMQ 队列中使用。

如果队列中没有消息,它会消耗越来越多的内存,几个小时后我们总是会耗尽内存。

它似乎没有做任何事情,但是消耗的内存(堆)正在以小速度不断增加。

我们如何避免这种情况或至少分析这种情况?

最佳答案

您确定您的代码不会产生内存泄漏吗? 如果您通过 Java VisualVM 连接到您的应用程序并看到如下图片:

example of memory leak

100% 确实存在内存泄漏,这不是 Spring 或 Java 问题;)。

我可以建议您阅读这篇有用的文章,了解如何调试此类问题,然后调查您的应用程序:

  1. https://www.toptal.com/java/hunting-memory-leaks-in-java
  2. https://www.dynatrace.com/resources/ebooks/javabook/memory-leaks/
  3. https://dzone.com/articles/memory-leak-andjava-code
  4. https://blogs.sourceallies.com/2011/07/debugging-memory-leaks-with-visualvm/
  5. http://blog.rejeev.com/2009/04/analyzing-memory-leak-in-java.html

关于java - Spring Integration 一直消耗更多内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44394455/

相关文章:

java - 有没有好的自然语言处理库

java - 我在 Eclipse 中看不到 Android SDK javadoc

java - 在按钮执行操作期间删除该按钮

java - 添加 wlfullclient-12.1.1 外部 jar 时,Spring Boot 应用程序为何会中断?

Java 日志记录似乎不适用于 FINE/FINER/FINEST 级别

Spring 3.2.2 : MockMVC, 返回空结果

java - Spring Data 具有严格的 In-clause

java - Hibernate 事务管理器 - Java 配置

java - Spring Boot 自定义属性

java - 带有嵌入式数据库的 Spring Boot 数据 jar