首页 > 解决方案 > 如何发现 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() 函数成功终止。关于如何深入了解原因的任何建议?

标签: javaspringmemory-leaksnetflix-eureka

解决方案


推荐阅读