请选择 进入手机版 | 继续访问电脑版

[手册] [springboot]微服务部署结构路径最佳实践

技术实战 技术实战 1594 人阅读 | 0 人回复

springboot 已经火了很多年了,现在又有很多应用使用springcloud进行开发。

随着容器化技术的发展,单体的应用直接部署更是越来越少。

但是有些场景下,使用springboot 构建单体应用,直接部署也是非常方便的一种形式,特此记录。

springboot jar包非容器化部署实践

image.png

注意:

  • 如果配置文件简单不复杂,可以考虑省略resources ,直接使用jar内部配置文件;
  • 除非应用jar变动有场景需求,否则lib尽量不用;

所以核心其实是这三个:

Jar bin/脚本 logs

配置文件conf

#jar包名称
jarpack="应用名称.jar"
#jar包路径
jarpath="/mnt/xxxx/test"
#java 的路径
path="/usr/local/java/jdk1.7.0_71/bin"
#虚拟机参数
JAVA_OPTS="--Xms4096m -Xmx4096m -XX:PermSize=128M -XX:PermSize=128M "
#应用程序参数
APP_OPTS="run.mode=daily --server.port=28180"

start.sh

#!/bin/bash
dir=$(cd `dirname $0`;pwd)
source $dir/conf
ret=`ps -ef | grep "$jarpath/$jarpack" | grep -v grep`
if [ "$ret"x == "x" ];then
cd $jarpath
  nohup $path/java $JAVA_OPTS -jar $jarpath/$jarpack $APP_OPTS >/dev/null 2>&1 & 
fi

ret=`ps -ef | grep "$jarpath/$jarpack" | grep -v grep`
if [ "$ret"x != "x" ];then
    echo "you have start the your service $jarpack now!"
else
        echo "Please check your conf! and re-excute the start.sh"
fi

stop.sh

#!/bin/bash
dir=$(cd `dirname $0`;pwd)
source $dir/conf
pid=`ps -ef| grep "$jarpath/$jarpack" | grep -v grep |awk '{print $2}'`
if [ "$pid"x != "x" ];then
  kill  $pid
fi
sleep 1s
ret=`ps -ef | grep "$jarpath/$jarpack" | grep -v grep`
sleep 10s
if [ "$ret"x = "x" ];then
    echo "you have stop the your service $jarpack now!"
else
    pid=`ps -ef| grep "$jarpath/$jarpack" | grep -v grep |awk '{print $2}'`
    if [ "$pid"x != "x" ];then
        echo "you service can't be stoped,so kill -9 your service! "
        kill -9 $pid
    fi
fi

循环kill形式的stop脚本

#!/bin/bash
dir=$(cd `dirname $0`;pwd)
source $dir/conf
pid=`ps -ef| grep "$jarpath/$jarpack" | grep -v grep |awk '{print $2}'`

#循环kill 形式,非kill -9
while [ ! -z $pid ]
do
    echo "shutting down $jarpath/$jarpack  which pid is $pid"
    kill $pid
    sleep 1
        pid=`ps -ef| grep "$jarpath/$jarpack" | grep -v grep |awk '{print $2}'`
done

echo "you have stop the your service $jarpack now!"

common_log.png 转载务必注明出处:程序员潇然,疯狂的字节X,https://crazybytex.com/thread-44-1-1.html

关注下面的标签,发现更多相似文章
    黄小斜学Java

    疯狂的字节X

  • 目前专注于分享Java领域干货,公众号同步更新。原创以及收集整理,把最好的留下。
    包括但不限于JVM、计算机科学、算法、数据库、分布式、Spring全家桶、微服务、高并发、Docker容器、ELK、大数据等相关知识,一起进步,一起成长。
热门推荐
[CXX1300] CMake '3.18.1' was not
[md][CXX1300] CMake '3.18.1' was not found in SDK, PATH, or
[若依]微服务springcloud版新建增添加一个
[md]若依框架是一个比较出名的后台管理系统,有多个不同版本。
解决waiting for all target devices to co
[md]解决Launching app ,waiting for all target devices to co