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”
调用远程脚本实现热部署