在 EC2 服务器上将 Java Spring Boot 服务部署到生产环境

Posted

技术标签:

【中文标题】在 EC2 服务器上将 Java Spring Boot 服务部署到生产环境【英文标题】:Deploy Java Spring Boot Services to Production on EC2 Server 【发布时间】:2020-06-17 06:59:55 【问题描述】:

我目前是使用 Java 部署的新手,并且对 jar 和 war 感到困惑。 如果有人可以解决我下面的几个问题

我是否需要将我的 jar(Java spring 服务)转换为 war 并部署在 Jboss/Tomcat 上?或者我应该在 prod 服务器上复制我的 jar 并使用 nohup 运行 java -jar "jar name"。

理想的生产部署方法应该是什么?

这是一个企业级应用程序。 有人可以帮助我如何在 EC2 生产服务器中部署 jar 应用程序。

【问题讨论】:

不,你不需要。是的,你可以。创建一个 systemd 守护进程定义和计时器来运行应用程序,这比 nohup 更好 systemd 守护进程定义是什么 你不应该忘记 EC2 实例需要被认为是短暂的,你应该自动化部署 @Marged 你能给我解释一下吗? 【参考方案1】:

Spring boot 带有一个内部 tomcat。所以你不需要将它部署在 tomcat 中,也不需要将其转换为战争。

您可以使用 java - jar "jar name" 命令运行它

【讨论】:

但是在生产部署中推荐吗?如果我想进行持续部署,再加上使用 jenkins,并且每次提交都需要终止应用程序正在运行的现有端口并使用命令 java - jar "jar name" 重新启动。 我创建了一个 systemd 服务来启动和停止我的应用程序。所以我只需要执行 systemctl start 或 systemctl stop 你能帮我处理一下 systemd 服务文件吗? 参考此链接。 digitalocean.com/community/tutorials/…

以上是关于在 EC2 服务器上将 Java Spring Boot 服务部署到生产环境的主要内容,如果未能解决你的问题,请参考以下文章

在 Linux 上将 Java 应用程序作为服务运行

在 Spring-boot 上将 Spring Batch 与 spring-batch-admin-manager 集成时出错

在 java 上将 csv 文件加载到 GreenPlum 失败

如何在 Amazon 的 EC2 上运行 Java 服务器?

在命令行上将多个 jar 添加到类路径 [重复]

Spring Boot 在 AWS EC2 上自动关闭