成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

本地實現Java遠程熱部署

mist14 / 594人閱讀

摘要:熱部署中間件阿里巴巴用戶文檔執(zhí)行命令下載至新建的目錄執(zhí)行命令應用使用提供的命令來替換中的,而無需重啟,從而實現熱部署,當然就阿爾薩斯本身是提供命令,可以直接在內存中編譯文件,但是自己試了幾次失敗了,所以,需要先在本地編譯相關的文件,然

1.熱部署中間件-arthas 阿里巴巴
1)用戶文檔:

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

2)執(zhí)行命令:

mkdir -p /home/work/local/arthas-boot

3)下載arthas.jar 至 2)新建的目錄

4)執(zhí)行命令

touch hot_depoy.sh

2.應用

使用arthas提供的redefine命令來替換jvm中的class,而無需重啟,從而實現熱部署,當然就阿爾薩斯本身是提供 mc 命令,可以直接在內存中編譯java文件,但是自己試了幾次失敗了,所以,需要先在本地編譯相關的Java文件,然后再用 redefine命令來實現熱部署。

3.本地腳本編寫原理

1)執(zhí)行命令(簡化)

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: