热部署
热部署的使用场景
1 . 本地调试时,加了几行代码就需要重新启动服务来检验调试的成果。
2 . 线上发布,重新启动。
热部署的优点:
1 . 无论本地还是线上,都适合。
2 . 无需重启服务器,提高开发调试效率,节省运维成本。
Java 热部署与热加载的联系与区别:
Java热部署与热加载的联系:
1.不重启服务器 编译/加载 项目
2. 基于Java的类加载器实现
Java热部署与热加载器的区别:
部署方式:
1 . 热部署在服务器运行时重新部署项目(整个项目的重新部署,安全性可控)
2 . 热加载在运行时重新加载class (重新加载修改的class字节码文件,难以监控)
实现原理(重点):
1 .热部署直接重新加载整个应用(会释放内存,加载的更彻底,同时耗费的时间也更长)
2 . 热加载在运行时重新加载class,(在容器启动的时候,启动一个后台线程,定时检测类文件的时间戳变化,如果类的时间戳发生变化,就把类重新载入。)
使用场景
1 . 热部署更多的是在生产环境使用(线上不能出错,热部署更加稳妥)
2 . 热加载则更多的实在开发环境使用(节省时间,同时对风险不太敏感)
热加载几乎没有
安全性,直接修改Java虚拟机中的字节码文件,难以监控和控制
热加载有个通俗的名字就是开发者模式