Java 热加载/热部署技术

1 概念

热部署:一般指容器(支持多应用)不重启,单独启动单个应用。

热加载:一般指不重启应用(JVM),单独重新更新某个类或者配置文件。

2 技术

热加载热部署一般基于以下三方面技术实现:

针对上面几种产品的介绍,详细可见:

3 总结

需要注意的是,热加载与热部署是用来解决「频繁发布」情景下的耗时问题,另外由于 JVM 的 GC 机制,在设计热加载流程时需要考虑原有卸载模块的内存清理问题,否则可能会造成 OOM。

线上环境既不会频繁发布,又有比较高的安全性要求,所以一般不建议在线上应用这种技术。