博客使用springboot些的,启动的时候只需要java -jar启动即可,突然想到可以多启动几台,然后用nginx做一个负载均衡,有没有用不说,权当练手了。
环境:
springboot写的博客项目,在服务器上启动 4 个实例,端口号分别是 5201、 5202、5203、5204,如下:
另外,springboot打包的时候,可以将代码和依赖以及配置文件分开打包, 这样可以直接修改配置文件,而且可以减小应用jar的大小,不用每次修改代码 后都上传依赖包,打包后的目录结构如下:
其中blogportal-1.0-SNAPSHOT.jar为项目代码,可以看到只有 1.4M,lib为依赖包目录,resources为配置文件目录,blog.sh是项目启动脚本,执行./blog.sh start即可启动项目。启动脚本从网上找的,之后自己改了一下以配合负载均衡使用,脚本出处暂时找不到了,脚本代码如下:
1 #!/bin/bash 2 3 env_args="-Xms128m -Xmx128m" 4 sleeptime=0 5 arglen=$# 6 7 # get my-blog pid 8 get_pid(){ 9 pname="`find . -name 'blog*.jar'`" 10 pname=${pname:3} 11 # pid=`ps -ef | grep ${pname} | grep -v grep | awk '{print $2}'` 12 pid=`lsof -i:5201 | awk '{print $2}'` 13 echo "$pid" 14 } 15 16 startup(){ 17 pid=$(get_pid) 18 if [ "$pid" != "" ] 19 then 20 echo "Blog already startup!" 21 else 22 jar_path=`find . -name 'blog*.jar'` 23 echo "jarfile=$jar_path" 24 cmd="java $1 -jar $jar_path > ./blog.out < /dev/null &" 25 echo "cmd: $cmd" 26 java $1 -jar ${jar_path} > ./blog.out < /dev/null & 27 show_log 28 fi 29 } 30 31 shut_down(){ 32 pid=$(get_pid) 33 if [ "$pid" != "" ] 34 then 35 kill -9 ${pid} 36 echo "Blog is stop!" 37 else 38 echo "Blog already stop!" 39 fi 40 } 41 42 show_log(){ 43 tail -f blog.out 44 } 45 46 show_help(){ 47 echo -e "\r\n\t欢迎使用Blog" 48 echo -e "\r\nUsage: sh blog.sh start|stop|reload|status|log" 49 exit 50 } 51 52 show_status(){ 53 pid=$(get_pid) 54 if [ "$pid" != "" ] 55 then 56 echo "Blog is running with pid: $pid" 57 else 58 echo "Blog is stop!" 59 fi 60 } 61 62 if [ ${arglen} -eq 0 ] 63 then 64 show_help 65 else 66 if [ "$2" != "" ] 67 then 68 env_args="$2" 69 fi 70 case "$1" in 71 "start") 72 startup "$env_args" 73 ;; 74 "stop") 75 shut_down 76 ;; 77 "reload") 78 echo "reload" 79 ;; 80 "status") 81 show_status 82 ;; 83 "log") 84 show_log 85 ;; 86 esac 87 fi