乐趣区

本地实现Java远程热部署

1. 热部署中间件 -arthas 阿里巴巴
用户文档:

https://alibaba.github.io/art…

2. 应用

使用 arthas 提供的 redefine 命令来替换 jvm 中的 class,而无需重启,从而实现热部署,当然就阿尔萨斯本身是提供 mc 命令,可以直接在内存中编译 java 文件,但是自己试了几次失败了,所以,需要先在本地编译相关的 Java 文件,然后再用 redefine 命令来实现热部署。

3. 步骤
1)本地通过

mvn clean compile -DskipTests

编译所需要的模块,获取相关 class 文件

2)找到涉及的 class 文件,通过

scp -P$remote_port $local_clazz_path $remote_user_name@$remote_host:$remote_path

上传相关的 class 文件

3)本地通过

ssh -p$remote_port $remote_user_name@$remote_host “sh $path/hot_deploy.sh $remote_clazz_path”

调用远程脚本实现热部署

退出移动版