java - 如何发现 Spring Cloud Eureka Client 内存泄漏原因?
问题描述
我有一个用 Java 编写的具有 Spring-Cloud Eureka Client 依赖项的微服务。当我从 Wildfly 取消部署它时,元空间内存没有被释放;用 Eclipse MAT 调查原因,我意识到 Eureka Client 的一些线程正在运行,从而产生 ClassLoaders 内存泄漏。
这些是这些 ClassLoader 之一的强引用: processing headdump in MAT
我使用以下 Maven 依赖项:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
使用此版本的 Spring Cloud:
<spring-cloud.version>Greenwich.RELEASE</spring-cloud.version>
在取消部署的过程中,我在服务器日志中看到 EurekaClient Bean 的 shutdown() 函数成功终止。关于如何深入了解原因的任何建议?