Spring Cloud微服务项目部署

1.项目打包

        修改子模块pom.xml文件,为其指定启动类和打包类型

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 指定启动类 -->
                <mainClass>com.backend.UserApplication</mainClass>
                <layout>ZIP</layout>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <!-- 将依赖到的包都放进去 -->
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

        为每个子模块都进行配置后,在IEDA右侧打开Maven,点击父工程生命周期中的package即可完成所有子模块的代码打包。

        所有子模块的jar包在对应的子工程的target目录下找到。

2.项目部署

        有了jar包之后,我们就可以通过Xshell或其他连接服务器的工具,将所有jar包上传到我们的服务器上(博主这里使用的是Xshell工具连接服务器)。

# (如果没有安装,则需先执行一下命令进行安装)
sudo apt install lrzsz

# 上传dist.zip 或 dist.rar压缩包
sudo rz (回车后选择对应文件即可上传)

        如果使用lrzsz上传文件出现乱码,请参考使用lrzsz命令上传出现乱码

        由于微服务项目通常不止一个jar包,一个一个的启动太过于麻烦,所以博主这里采用了批处理指令。

# 在服务器上传jar包的位置创建 .sh 文件
sudo touch application.sh

# 使用 vim 对 application.sh 文件进行编辑
sudo vim application.sh

# 添加批处理指令 (使用 nohub 注意以 & 结尾)
nohup java -Xmx1024M -Xms256M -jar shift-scheduling-calculate-service-0.0.1-SNAPSHOT.jar --server.port=6004 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar user-0.0.1-SNAPSHOT.jar --server.port=9001 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar gateway-0.0.1-SNAPSHOT.jar --server.port=9000 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar system-server-0.0.1-SNAPSHOT.jar --server.port=9002 --spring.profiles.active=prod &
nohup java -Xmx256M -Xms256M -jar order-party-0.0.1-SNAPSHOT.jar --server.port=9003 --spring.profiles.active=prod &
  • nohup 使用nohup可以让项目在后台运行,不写nohup可以看到jar包运行的输出
  • -Xmx Java Heap最大值,默认值为物理内存的1/4,应该视物理内存大小及计算机内其他内存开销进行设置
  • -Xms Java Heap初始值,也是最小值
  • -Xmn Java Heap Young区大小,不熟悉最好保留默认值
  • -Xss 每个线程的stack大小,不熟悉最好保留默认值
  • –server.port=6004 指定jar运行的端口号,也可以不指定,因为配置文件也写了,不过想指定其他的可以在这里指定
  • –spring.profiles.active=prod 指定运行jar使用的配置,也可以=dev、test

        赋予applocation.sh可执行权限

chmod u+x *.sh

        运行批处理文件

sh application.sh  # 或者 ./application.sh

        查看和停止运行jar包

# 查看正在运行的Java程序
jps

# 停止正在运行的java程序
kill -9 238351

 

 

### Java 微服务项目部署教程 #### 选择合适的部署方式 对于简单的微服务部署需求,特别是在开发环境或小规模应用场景中,可以直接使用 `nohup` 命令来保持应用程序在后台持续运行[^1]: ```bash nohup java -jar myapp.jar > log.txt 2>&1 & ``` 这种方式适合于那些需要迅速上线的服务,并且每个微服务能够独立运作,互不干扰。 另一种更为推荐的方法是利用 Docker 容器化技术来进行部署。这不仅提高了资源利用率,还增强了跨平台兼容性和版本控制能力。 #### 准备工作 确保目标 Linux 服务器上已经安装好 JDK 并设置好了相应的环境变量。可以通过编辑 `.bashrc` 或者创建一个新的 shell 脚本来完成这些配置[^4]: ```bash export JAVA_HOME=/data/jdk/jdk1.8.0_281 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH source ~/.bashrc ``` 接着把编译好的 jar 文件放置到指定位置 `/dabaomao/my-images/` 下面进行初步验证其能否正常启动[^2]。 #### 修改 application.properties 配置文件 根据实际业务逻辑调整 Spring Boot 应用程序中的 `application.properties` 参数设定,比如监听端口号、上下文路径以及应用名称等信息[^3]: ```properties server.port=9090 server.servlet.context-path=/ spring.application.name=spring-boot-demo spring.output.ansi.enabled=always ``` #### 编写启动脚本 为了方便管理和自动化操作流程,建议编写一个专门用于启动微服务的应用脚本 `gateway-start.sh` ,其中包含了 JVM 启动参数优化选项如内存分配大小限制等[^5]: ```bash #!/bin/bash java -jar \ -Dfile.encoding=UTF-8 \ -Duser.timezone=Asia/Shanghai \ -Xms512m \ -Xmx1024m \ /path/to/gateway-1.0.jar > temp.log & ``` 通过上述步骤即可实现较为标准的 Java 微服务项目部署过程,在生产环境中还可以考虑加入日志收集系统、监控告警机制等方面进一步完善整个架构体系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛*璃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值