Vin*_*t89 2 java spring spring-boot
我观察到Spring Boot应用程序在生产环境中的内存不足以下是应用程序生成的异常日志.
stackTrace":"java.lang.OutOfMemoryError:超出GC开销限制\nWrapped:org.springframework.beans.factory.BeanCreationException:创建名为'org.springframework.context.annotation.internalConfigurationAnnotationProcessor'的bean时出错:bean的初始化失败; 嵌套异常是java.lang.OutOfMemoryError:超出GC开销限制\n\tat org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)\n\tat org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:306)\n\tat org.springframework.beans.factory.support. DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)\n\tat org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)\n\t ... 48帧截断\n"}
我还使用堆转储进行应用并使用MAT工具进行分析,这是可疑的泄漏

我们无法弄清楚如何创建多个应用程序上下文.理想情况下,这应该是单身人士.这种行为在我们的本地环境中无法生成.我们也依赖于Consul我们正在存储配置.我也不理解为什么对象AnnotationConfigApplicationContext没有被垃圾收集.在Spring Boot中可能存在bug.
AbbstractApplicationContext$2是由registerShutdownHook()方法注册的匿名内部类.如果要确认,可以自行反编译该类.
看起来你已经注册了1,807,588,080个关闭钩子,放置一个断点registerShutdownHook()并调试正在发生的事情.可能是您正在创建多个新的Spring上下文而不是单个Spring上下文,它们每个都注册一个关闭钩子线程.
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |