网站寄生虫怎么做,南京专业网站设计公司价格,河南的网络推广公司,公司介绍网站怎么做此操作只针对于测试环境或单机部署的情况下#xff0c;使用Jenkins自动化部署或docker部署SpringBoot服务请忽略。
SpringBoot单机启动和集群启动的区别#xff1a;
部署方式#xff1a;单机启动可以直接运行jar文件或使用IDE启动应用程序#xff0c;而双机集群启动需要将… 此操作只针对于测试环境或单机部署的情况下使用Jenkins自动化部署或docker部署SpringBoot服务请忽略。
SpringBoot单机启动和集群启动的区别
部署方式单机启动可以直接运行jar文件或使用IDE启动应用程序而双机集群启动需要将应用程序部署在多台机器上并配置负载均衡器。数据一致性单机启动的应用程序只有一个实例数据一致性相对简单。而双机集群启动的应用程序有多个实例需要考虑数据同步和一致性的问题。扩展性单机启动的应用程序可以通过增加机器的性能进行扩展而双机集群启动的应用程序可以通过增加机器的数量进行扩展。故障处理在单机启动中如果应用程序出现故障可能会导致整个服务不可用。而在双机集群启动中即使一个应用程序出现故障其他应用程序仍然可以继续处理请求。 总而言之单机启动适用于开发和测试环境对并发请求要求不高的小型应用程序。而双机集群启动适用于生产环境以确保应用程序的稳定性和可扩展性。
一、安装Java运行时环境这里我们使用开源免费的OpenJDK11
查看OpenJDK11安装包列表
yum list|grep java-11-openjdk执行安装命令
yum install -y java-11-openjdk.x86_64查看安装成功的版本
[rootlocalhost ~]# java -version
openjdk version 11.0.21 2023-10-17 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.219-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.21.0.9-1.el7_9) (build 11.0.219-LTS, mixed mode, sharing)设置JAVA_HOME
通过命令查找java安装的真实路径使用which java找到的是软链接需要通过ll命令一层层查找真实路径我们这边最终/usr/bin/java真实的路径为 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java那么我们的JAVA_HOME就是java的安装目录/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64去掉 末尾的 /bin/java 。
[rootlocalhost ~]# which java
/usr/bin/java
[rootlocalhost ~]# ll /usr/bin/java
lrwxrwxrwx 1 root root 22 Jan 2 16:13 /usr/bin/java - /etc/alternatives/java
[rootlocalhost ~]# ll /etc/alternatives/java
lrwxrwxrwx 1 root root 64 Jan 2 16:13 /etc/alternatives/java - /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java
[rootlocalhost ~]# ll /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java
-rwxr-xr-x 1 root root 13192 Nov 15 00:51 /usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64/bin/java编辑/etc/profile文件添加JAVA_HOME配置并使用source /etc/profile命令使环境配置生效不需要配置CLASS_APTH, rt.jar, tools.jar。
vi /etc/profileexport JAVA_HOME/usr/lib/jvm/java-11-openjdk-11.0.21.0.9-1.el7_9.x86_64
export PATH$PATH:$JAVA_HOME/binsource /etc/profile二、编写启动、停止SpringBoot服务的Shell脚本
定义运行服务需要的参数服务名称、服务程序路径、日志文件等这里可以感觉自己的需要来定义包括可以添加java -jar的运行参数等。
#!/bin/bash
APP_NAMEgitegg-application.jar # 命令号提示服务名
APP_PATH/opt/server/gitegg-application.jar # jar包文件路径
LOG_FILE/opt/server/gitegg-application.log # 日志输出文件路径一般我们服务会记录日志如果不想在这里输出那么可以填写 /dev/null定义命令脚本运行提示如果输入的命令格式错误这里可以给出正确的命令格式等。
#使用说明提示输入参数
usage() {echo Usage: sh start_server.sh [start|stop|restart|status]exit 1
}定义检查服务是否正在运行的函数
#检查服务是否正在运行
is_running(){pidps -ef|grep $APP_PATH|grep -v grep|awk {print $2}
if [ -z ${pid} ]; thenreturn 1elsereturn 0fi
}定义启动服务的函数
#启动服务
start(){is_runningif [ $? -eq 0 ]; thenecho ${APP_NAME} is already running. pid${pid} .elsenohup java -jar $APP_PATH $LOG_FILE 21 fi
}定义停止服务的函数
#停止服务
stop(){is_runningif [ $? -eq 0 ]; thenkill -9 $pidelseecho ${APP_NAME} is not runningfi
}定义查看服务运行状态的函数
#显示运行状态
status(){is_runningif [ $? -eq 0 ]; thenecho ${APP_NAME} is running. Pid is ${pid}elseecho ${APP_NAME} is NOT running.fi
}定义服务重启函数
#重启服务
restart(){stopstart
}脚本接收参数根据参数执行对应的命令函数
#选择要运行的命令
case $1 instart)start;;stop)stop;;status)status;;restart)restart;;*)usage;;
esac设置脚本执行权限填写自己脚本文件的实际路径
chmod x /opt/server/start_server.sh完整的执行脚本如下
#!/bin/bash
APP_NAMEgitegg-application.jar # 命令号提示服务名
APP_PATH/opt/server/gitegg-application.jar # jar包文件路径
LOG_FILE/opt/server/gitegg-application.log # 日志输出文件路径一般我们服务会记录日志如果不想在这里输出那么可以填写 /dev/null#使用说明提示输入参数
usage() {echo Usage: sh start_server.sh [start|stop|restart|status]exit 1
}#检查服务是否正在运行
is_running(){pidps -ef|grep $APP_PATH|grep -v grep|awk {print $2}
if [ -z ${pid} ]; thenreturn 1elsereturn 0fi
}#启动服务
start(){is_runningif [ $? -eq 0 ]; thenecho ${APP_NAME} is already running. pid${pid} .elsenohup java -jar $APP_PATH $LOG_FILE 21 fi
}#停止服务
stop(){is_runningif [ $? -eq 0 ]; thenkill -9 $pidelseecho ${APP_NAME} is not runningfi
}#显示运行状态
status(){is_runningif [ $? -eq 0 ]; thenecho ${APP_NAME} is running. Pid is ${pid}elseecho ${APP_NAME} is NOT running.fi
}#重启服务
restart(){stopstart
}#选择要运行的命令
case $1 instart)start;;stop)stop;;status)status;;restart)restart;;*)usage;;
esac三、编写启动、停止SpringBoot服务的Shell脚本 在CentOS中的服务是由systemd管理的可以通过systemctl命令进行服务运行的相关操作。
新增管理服务gitegg-server.service服务名称可以自己定义此服务放到 /lib/systemd/system/ 目录
vi /lib/systemd/system/gitegg-server.service编写服务内容
[Unit]
Descriptiongitegg-server
Afterdocker.socket early-docker.target network.target
Wantsnetwork-online.target docker.service
Requiresdocker.socket [Service]
Typeforking
ExecStart/opt/server/start_server.sh start
ExecStop/opt/server/start_server.sh stop
ExecSatus/opt/server/start_server.sh status
ExecRestart/opt/server/start_server.sh restart [Install]
WantedBymulti-user.target保存并重新加载配置
systemctl daemon-reload设置服务开机启动
systemctl enable gitegg-server.service可以直接使用systemctl 命令操作服务
# 启动服务
systemctl start gitegg-server.service
# 关闭服务
systemctl stop gitegg-server.service
# 查看服务状态
systemctl status gitegg-server.service
# 重启服务
systemctl restart gitegg-server.service单机启动是指在一台机器上启动一个Spring Boot应用程序。在单机启动的情况下应用程序运行在一个独立的进程中并且只能处理一个请求。单机启动适用于开发和测试环境以及对并发请求要求不高的小型应用程序。 通过以上配置当服务器重新启动时jar文件也将自动运行。请注意这只是在CentOS系统实现的一种方法实际操作可能因操作系统版本和个人设置而有所不同。