怀人 2020-10-23 16:18 采纳率: 25%
浏览 1000

dubbo,ReferenceConfig(null) is not DESTROYED when FINALIZE

求助!!!!


1.问题

springBoot服务启动时卡住,控制台一直打印*ReferenceConfig(null) is not DESTROYED when FINALIZE*,如下图:
图片说明


2.环境

dubbo 2.7.6、zookeeper 3.4.10、springBoot项目


玩不转了,大佬别走

  • 写回答

1条回答 默认 最新

  • WaitIKnowYou 2023-06-11 12:54
    关注

    可能是因为 Dubbo 的 ReferenceConfig 对象没有被正确销毁。这可能会导致在 Spring Boot 服务启动时卡住的情况。

    • 检查 Dubbo 依赖版本:确保你使用的 Dubbo 版本与其他依赖项(例如 ZooKeeper)兼容。有时,版本不匹配可能会导致此问题。尝试升级或降级 Dubbo 和其他相关依赖项的版本,确保它们之间兼容。
    • 销毁 Dubbo 的 ReferenceConfig 对象:在你的 Spring Boot 项目中,确保在适当的时机销毁 Dubbo 的 ReferenceConfig 对象。可以通过实现 DisposableBean 接口或使用 @PreDestroy 注解来进行销毁操作。
    import org.springframework.beans.factory.DisposableBean;
    import org.springframework.stereotype.Component;
    
    @Component
    public class DubboReferenceDestroyer implements DisposableBean {
        
        @Override
        public void destroy() throws Exception {
            // 销毁 Dubbo 的 ReferenceConfig 对象
            ReferenceConfigCache.getCache().destroyAll();
        }
    }
    
    
    

    或者,你也可以使用 @PreDestroy 注解在指定的 Bean 方法上添加销毁逻辑:

    import org.springframework.stereotype.Component;
    import javax.annotation.PreDestroy;
    
    @Component
    public class DubboReferenceDestroyer {
        
        @PreDestroy
        public void destroy() {
            // 销毁 Dubbo 的 ReferenceConfig 对象
            ReferenceConfigCache.getCache().destroyAll();
        }
    }
    
    
    

    如果以上方法仍然无法解决问题,请确保 Dubbo 和 ZooKeeper 的版本兼容,并尝试升级到最新的 Dubbo 版本

    评论

报告相同问题?