Spring Boot 微服务项目的推荐部署方式

来源:互联网 发布:约束优化算法 编辑:程序博客网 时间:2024/05/22 13:23

如果开发过spring boot的程序,应该都知道,使用spring boot官方的maven打包插件(spring-boot-maven-plugin) 来打包,打出来的jar包一般有40M以上.

如果公司的服务器上传带宽不高,那么手动上传一个jar或者jenkins部署一次jar,都是非常痛苦的........

但是,如果打包的时候不引入lib,那么打出来的jar包一般只有几十k而已,非常小,想怎么传就怎么传.........

本文会提供一个bash启动脚本,只需要稍做更改,即可适应你的程序部署方式.


先看一下我的微服务目录结构:

service/    ===================  服务根目录├── bootstrap.sh  ============ 公用启动脚本├── lib  ==================== 公用lib,如果有特殊的服务,不需要共用的jar,则需要添加私用的启动脚本,和私用的lib│   ├── accessors-smart-1.1.jar│   ├── asm-5.0.3.jar......   ======================= jar包太多,省略.├── service0  =============== 一个微服务│   ├── application.yml  =======  这个配置文件作用仅仅是控制不同环境的使用的不同配置文件,内容非常简单: spring.profiles.active: dev │   └── service0.jar   =========   核心jar└── service1    ├── application.yml    └── service1.jar



插一句:这里没有使用docker,日后有空,再写一篇基于docker的spring boot微服务部署.


这样一来,如果我要启动service0,只需要在service目录下输入:

./bootstrap.sh start service0
即可启动service0


最后,奉上启动脚本的源码:

#!/usr/bin/env bash#Author: Leo#Blog: http://blog.csdn.net/lc0817#CreateTime: 2016/12/10 15:07#Description:source /etc/profile#================Var Begin====================serviceName=$2serviceDir="/home/leo/service"jarName="$serviceName.jar"mainClass="com.hmxw.Application"tag="$serviceName"libDir="$serviceDir/lib"logOutputFormat=$(date +%b" "%d" "%H:%M:%S" "`hostname`)jvmParam="-Xmx2048M -Xms2048M -XX:PermSize=512M -XX:MaxPermSize=512M"#================Var End====================#================Function Begin====================start(){    cd $serviceDir    runningJarCount=$(ps -ef | grep java | grep -w $tag | wc -l)    if [ $runningJarCount -gt 0 ]; then        echo "$logOutputFormat $tag is running."    else        $JAVA_HOME/bin/java $jvmParam -Dir=$tag $mainClass        echo "$logOutputFormat Ready to start $tag, if u wanna see the bootstrap process of $tag, please tail the console.out."    fi} stop(){    echo "$logOutputFormat Ready to stop $tag."    runningJarCount=$(ps -ef | grep java | grep -w $tag | wc -l)    if [ $runningJarCount -gt 0 ]; then        ps -ef|grep java|grep -w $tag|grep -v grep|awk '{print $2}' |xargs -n1 kill -9    fi    echo "$logOutputFormat $tag was stopped."}#================Function End====================if [ ! -f $serviceDir/$serviceName/$jarName ]; then    echo "Cannot find $serviceDir/$serviceName/$jarName ."    exitfifor lib in $libDir/*.jardo    libs=$lib:$libsdoneCLASSPATH=$libs$serviceDir/$serviceName/$jarNameexport CLASSPATH#==================Entrance Begin===============case "$1" in    start)        start        ;;    stop)        stop        ;;    restart)        stop        sleep 5        start        ;;    *)    echo "Usage: $0 {start|stop|restart} + serviceName"    exit 2esac#==================Entrance End===============






1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 社保断了生育险怎么办 深圳小产权房水电费纠纷怎么办 有公租房的再婚怎么办 廉租房被没收了怎么办 商铺到期房东不续租怎么办 天津集体户口买不起房怎么办 房东不想续租了怎么办 唯一住房卖掉后户口怎么办 杭州唯一住房卖掉后户口怎么办 唯一一套住房卖掉户口怎么办 房租押金条丢了怎么办 二建证书跟毕业证丢失怎么办 住宅房到70年怎么办 护照号变了机票怎么办 苹果se指纹坏了怎么办 月经推迟怎么办才能快点来 车载支架不粘了怎么办 otpc平板电脑无法开机怎么办 手表表轴掉了怎么办 鸡肉放冰箱臭了怎么办 鸡胸肉熟了腥怎么办 梦幻西游手游手机号换了怎么办 ppt做一半卡住了怎么办 吃了发霉的蚝油怎么办 蛋皮干燥起皮怎么办 wps卡顿资料没保存怎么办 手指受伤肉掉了怎么办 手机被wifi禁了怎么办 母乳一边是咸的怎么办 tcl电视蓝频了怎么办 长虹电视蓝频了怎么办 电视突然蓝频了怎么办 海信电视蓝频了怎么办 连网电视蓝频了怎么办 英雄联盟画面卡顿怎么办 长残了怎么办原来很帅 被吓到了怎么办没精神 宝宝吓着怎么办最有效 4个月婴儿易惊吓怎么办 心里有问题的人怎么办 减肥的时候想吃东西怎么办