当前位置: 代码迷 >> 综合 >> 记录工作中一个jar包热部署的思路
  详细解决方案

记录工作中一个jar包热部署的思路

热度:46   发布时间:2024-02-06 23:05:26.0

背景:服务端调用动态代理(基于接口),可以实现单线程转多线程功能。

实现热部署方式:

1.启动关闭组件的方法。停止线程池的添加功能

2.等待线程内的冗余任务执行完成

3。关闭runtimeClassLoader

4.利用sha1校验更新介质

5.生成新的运行环境,new runtimeClassLoader

6.set新的文件到classFinder中,

7.到此为止,新的runtimeClassLoader已经set到runtimeEnv了

8.创建新的环境管理factory并且加载各个组件

9.在start方法中更新threadfactroy的loader,这样洗呢线程就可以读取到新的实现类

10.通过动态代理就可以使用新的实现类调用方法。

  相关解决方案