摘要:熱部署中間件阿里巴巴用戶文檔執行命令下載至新建的目錄執行命令應用使用提供的命令來替換中的,而無需重啟,從而實現熱部署,當然就阿爾薩斯本身是提供命令,可以直接在內存中編譯文件,但是自己試了幾次失敗了,所以,需要先在本地編譯相關的文件,然
1.熱部署中間件-arthas 阿里巴巴
1)用戶文檔:
https://alibaba.github.io/art...
2)執行命令:
mkdir -p /home/work/local/arthas-boot
3)下載arthas.jar 至 2)新建的目錄
4)執行命令
touch hot_depoy.sh
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" “$project_name”
調用遠程腳本實現熱部署
四、本地腳本如下:
#!/usr/bin/env bash env_name=$1 git_manual_flag=$2 remote_host= remote_port= remote_pass_word= remote_user_name= remote_path="/home/work/local/arthas-boot/class" remote_deploy_path="/home/work/local/arthas-boot/hot_deploy.sh" all_java_class_path= skip_maven= check_parameter(){ if [ -z "$env_name" ]; then echo "please set environment,for example: