全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1170|回复: 19
打印 上一主题 下一主题

服务器部署springboot应用的最佳实践

[复制链接]
跳转到指定楼层
1#
发表于 2022-6-1 22:35:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
纯小白,目前使用的就是本地把项目打成jar包

然后在服务器使用nohup指令启动jar包

请问各位除了这一招 还有其他方案么

谢谢分享
推荐
发表于 2022-6-2 10:29:22 | 只看该作者
本帖最后由 落叶随风 于 2022-6-2 12:40 编辑

保存为sh,
启动方式 ./xxx.sh (start / stop /restart /status) springboot.jar

  1. #!/bin/bash
  2. # Author study
  3. ## UPDATE 2020-01-05
  4. version="1.0.1"

  5. appName=$2
  6. if [ -z $appName ];then
  7.     appName=`ls -t |grep .jar$ |head -n1`
  8. fi

  9. function start()
  10. {
  11.         count=`ps -ef |grep java|grep $appName|wc -l`
  12.         if [ $count != 0 ];then
  13.                 echo "Maybe $appName is running, please check it..."
  14.         else
  15.                 echo "The $appName is starting..."
  16.                 # 定义激活配置以及 启动参数
  17.                 nohup java -jar  ./$appName -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx2G > /dev/null   2>&1 &
  18.                 echo "pid is $!"
  19.                 echo Start Successed!
  20.         fi
  21. }

  22. function stop()
  23. {
  24.         appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
  25.         if [ -z $appId ];then
  26.             echo "Maybe $appName not running, please check it..."
  27.         else
  28.         echo "The $appName is stopping..."
  29.         kill $appId
  30.         fi
  31. }

  32. function restart()
  33. {
  34.     # get release version
  35.     releaseApp=`ls -t |grep .jar$ |head -n1`
  36.    
  37.     # get last version
  38.     lastVersionApp=`ls -t |grep .jar$ |head -n2 |tail -n1`

  39.     appName=$lastVersionApp
  40.     stop
  41.     for i in {5..1}
  42.     do
  43.         echo -n "$i "
  44.         sleep 1
  45.     done
  46.     echo 0
  47.    
  48.     backup
  49.    
  50.     appName=$releaseApp
  51.     start
  52. }

  53. function backup()
  54. {
  55.     # get backup version
  56.     backupApp=`ls |grep -wv $releaseApp$ |grep .jar$`
  57.    
  58.     # create backup dir
  59.     if [ ! -d "backup" ];then
  60.         mkdir backup
  61.     fi
  62.    
  63.     # backup
  64.     for i in ${backupApp[@]}
  65.     do
  66.         echo "backup" $i
  67.         mv $i backup
  68.     done
  69. }

  70. function status()
  71. {
  72.     appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
  73.         if [ -z $appId ]
  74.         then
  75.             echo -e "\033[31m Not running \033[0m"
  76.         else
  77.             echo -e "\033[32m Running [$appId] \033[0m"
  78.         fi
  79. }


  80. function usage()
  81. {
  82.     echo "Usage: $0 {start|stop|restart|status|stop -f}"
  83.     echo "Example: $0 start"
  84.     exit 1
  85. }

  86. case $1 in
  87.         start)
  88.         start;;

  89.         stop)
  90.         stop;;
  91.        
  92.         restart)
  93.         restart;;
  94.        
  95.         status)
  96.         status;;
  97.        
  98.         *)
  99.         usage;;
  100. esac



复制代码
2#
发表于 2022-6-1 22:51:39 | 只看该作者
容器化部署是不是好点
3#
 楼主| 发表于 2022-6-1 22:54:36 | 只看该作者
micboy 发表于 2022-6-1 22:51
容器化部署是不是好点

请问大佬是写dockerfile嘛
4#
发表于 2022-6-1 22:57:30 | 只看该作者
akatom 发表于 2022-6-1 22:54
请问大佬是写dockerfile嘛

我不是大佬,我写dockerfile
5#
 楼主| 发表于 2022-6-1 22:59:04 | 只看该作者
micboy 发表于 2022-6-1 22:57
我不是大佬,我写dockerfile

oki 谢谢
6#
发表于 2022-6-1 23:09:20 | 只看该作者
还可以做成一个service使用systemd管理,你用nohup异常了程序停止就不会自启
7#
 楼主| 发表于 2022-6-2 09:12:56 | 只看该作者
darius 发表于 2022-6-1 23:09
还可以做成一个service使用systemd管理,你用nohup异常了程序停止就不会自启

请问大佬有教程吗
8#
发表于 2022-6-2 09:32:36 | 只看该作者
一个docker就可以了。
9#
发表于 2022-6-2 09:40:12 | 只看该作者
专业一点就容器化,然后上Kubernetes容器编排
10#
发表于 2022-6-2 09:43:00 | 只看该作者
docker吧,别用screen或者nohup之类了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-12 19:54 , Processed in 0.064277 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表