HT后台热更新方案

一、上传Jar文件

1、将编译好的jar文件上传到服务81008200各一份。

8100和8200为目录名称可更改,示例如下:
/data/8100/tuha-ar-8100.jar
/data/8200/tuha-ar-8200.jar

二、项目中添生产环境配置文件

1、例如application-prod8100.ymlapplication-prod8200.yml 除端口不同,其余配置全部相同。

三、Nginx中添加配置

1、添加后台服务端口
# 轮训策略
upstream thygkq2 {
    server 127.0.0.1:8100;
    server 127.0.0.1:8200;
}
# 前端服务
server {
    listen       8080;
    server_name  localhost;
    
    location / {
        root   html;
        index  index.html index.htm;
    }

    location /admin-api {
        proxy_pass   http://thygkq2;
    }
}

# 移动外网端口
server {
    listen       9006;
    server_name  localhost;
    location / {
        proxy_pass   http://thygkq2;
    }
}

四、添加启动脚本 ht.sh

#!/bin/sh
# ./ht.sh start 启动 stop 停止 restart 重启 status 状态
AppName=tuha-ar-8100.jar
ENV=prod8100

# JVM参数
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log

if [ "$1" = "" ];
then
    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
    exit 1
fi

if [ "$AppName" = "" ];
then
    echo -e "\033[0;31m 未输入应用名 \033[0m"
    exit 1
fi

function start()
{
    PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`

    if [ x"$PID" != x"" ]; then
        echo "$AppName is running..."
    else
        nohup java -jar $AppName $JVM_OPTS --spring.profiles.active=$ENV > /dev/null 2>&1 &
        echo "Start $AppName success, environment is $ENV ..."
    fi
}

function stop()
{
    echo "Stop $AppName"

    PID=""
    query(){
        PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
    }

    query
    if [ x"$PID" != x"" ]; then
        kill -TERM $PID
        echo "$AppName (pid:$PID) exiting..."
        while [ x"$PID" != x"" ]
        do
            sleep 1
            query
        done
        echo "$AppName exited."
    else
        echo "$AppName already stopped."
    fi
}

function restart()
{
    stop
    sleep 2
    start
}

function status()
{
    PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
    if [ $PID != 0 ];then
        echo "$AppName is running..."
    else
        echo "$AppName is not running..."
    fi
}

case $1 in
    start)
    start;;
    stop)
    stop;;
    restart)
    restart;;
    status)
    status;;
    *)

esac

注意
1、AppName需改为jar包名称。
2、ENV修改指定的启动环境。
3、上传ht.sh到jar同级目录下(第一步jar目录)。
4、./ht.sh start 启动 ./ht.sh stop 停止 ./ht.sh restart 重启 ./ht.sh status 状态。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 192.168。109.78 1883 可以使用横屏下的计算器。用()代替*#。。比如说你的*#*#284657...
    Mervyn_86c0阅读 204评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,128评论 19 139
  • 今日6月7日,高考第一天。祝莘莘学子,金榜题名。 美好的一天从学习阳明心学开始,认真读原文到最后一段,写下感悟“贼...
    快乐大拙阅读 141评论 0 7
  • 环境专业:产品碳足迹是进入双碳的最佳选择 环保行业20多年工作经验,高级工程师,职业咨询,绿色认证咨询 现在全国都...
    花阡陌2022阅读 153评论 0 0
  • 今日给大家揭秘北京师范大学宿舍内景 ~~~~~~~~~~~~~~~~~ 1️、【床铺尺寸】:190*90cm 2️...
    kitty学姐阅读 2,578评论 0 0

友情链接更多精彩内容