热部署和热加载是什么?
热部署是什么?
热部署全称Hot deploy,主要是针对容器或应用,若新增资源或部分源码更新,在不需要重启的情况下进行重新加载或部署。
热加载是什么?
热加载全称Hot Swap,主要针对已编译的源码生成的字节码,重新编译后,不需要停机,直接重新加载该更新后文件新的字节码到内存中。
个人理解:热部署和热更新主要是解决频繁重启服务的导致体验和效率不佳。热部署可以从0-1,或从1-1,比如 买来的方便面在家里直接泡个开水开吃,或者直接排骨熬汤上。热加载就很有限了,就像你在高铁上条件有限,仅能加开水开干。
热部署和热加载对比
对比名称 | 热部署 | 热加载 |
---|---|---|
需要重启 | 不需要 | 不需要 |
对针面 | 整个应用或容器,新增或减少的文件、文件夹 | 局部(针对变动的源码) |
内存清除 | 会 | 不会,可能引发OOM |
最后
不管理热部署和热加载,其实最终目的是无需要重启服务,实现服务自动化加载,只是说热部署更全面,针对的是整个项目,而热加载仅针对变更的文件代码做局部更新,对于新文件或目录无效,需要重部署。当然对于java语言来说,热加载属于比较成熟的技术,而对于tomcat来说热部署也是比较方法,直接把文件丢进webapp自动就部署上了。在不同的场景会有不同的使用。像ideea、vscode很多ide都会实现热部署的功能,所以在开发层面极大提升我们研发的效率。
参考文章:
https://blog.51cto.com/u_11103019/3766234
https://www.cnblogs.com/lanqingzhou/p/13590334.html
https://www.cnblogs.com/diexian/p/13501359.html
https://blog.51cto.com/u_13567403/3043758
https://blog.csdn.net/zhanglh046/article/details/115843463