一、热加载
原理:热加载的实现原理主要依赖jvm的类加载机制,在运行时对被修改过的类进行重新载入。
实现方式:在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。
适用场景:热加载会直接修改jvm中的字节码,这种方式对既有代码行为的影响难以控制,风险较大,几乎不会在生产环境使用该方案。
二、热部署
原理:热部署是指在服务器运行时重新部署项目,它是直接重新加载整个应用,这种方式会释放内存,比热加载更加干净彻底,但同时也更费时间。
实现方式:Weblogic、tomcat都可以通过配置支持热部署,但主要用于开发测试环境,较少应用于生产环境。
适用场景:热部署大大简化了发布操作,在开发和测试环境使用很普遍;但由于开通热部署后会增大系统开销,因此较少在生产环境使用。
三、集群分批部署
原理:利用nginx、apache等代理服务器自动对后端服务器的有效性进行判断,转发请求到有效的服务器上。在此基础上对后端服务器先后逐个更新,达到不停机部署的目的。
实现方式:在集群的前端代理服务