在应用运行的时升级软件,无需重新启动的方式有两种,热部署和热加载。对于Java应用程序来说,热部署就是在服务器运行时重新部署项目,热加载即在在运行时重新加载class,从而升级应用。

      热加载的实现原理主要依赖java的类加载机制,在实现方式可以概括为在容器启动的时候起一条后台线程,定时的检测类文件的时间戳变化,如果类的时间戳变掉了,则将类重新载入。对比反射机制,反射是在运行时获取类信息,通过动态的调用来改变程序行为;热加载则是在运行时通过重新加载改变类信息,直接改变程序行为。热加载可以极大地提高开发效率。

      热部署原理类似,但它是直接重新加载整个应用,这种方式会释放内存,比热加载更加干净彻底,但同时也更费时间,这种情况会造成session丢失的情况。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐