【问题标题】:Spring boot as war vs jarSpring Boot 作为战争与 jar
【发布时间】:2020-02-26 18:08:30
【问题描述】:

我们正在开发一个带有 Spring-boot 和 REST 的中间件平台,我们会采用完全微服务架构,而是基于功能创建小型服务。 例如:catalog-service-api 用于目录上的 CRUD 操作,online-services-api 用于 IoT。

1.我应该去打仗还是去打仗?

我觉得 jar 的缺点是,每个 jar 都会创建一个新进程(新的 tomcat),我现在不想扩展它。

当我们正在开发基于云的企业产品时,我们需要 jar 还是 war?不需要微服务。

2。如果我参加战争,spring boot admin 会按预期工作吗?

我们正面临在一台服务器上部署 spring-boot admin 而客户端是另一台服务器。

@SpringBootApplication
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminServerApplication extends 
SpringBootServletInitializer{

public static void main(String[] args) {
    SpringApplication.run(SpringBootAdminServerApplication.class, args);
}
}

客户:

@SpringBootApplication
public class SpringBootAdminClientApplication extends 
SpringBootServletInitializer{

    public static void main(String[] args) {
        SpringApplication.run(SpringBootAdminClientApplication.class, args);
    }
 }

客户端应用程序.properties: spring.boot.admin.client.url=http://localhost:8085 spring.boot.admin.client.service-url=http://localhost:8085/spring-boot-admin-server

管理服务器正在运行,但客户端不可用。

请提出建议。

【问题讨论】:

标签: java spring spring-boot


【解决方案1】:

我应该去打仗还是去打仗?

这个选择完全取决于你。我认为,如果您了解基本区别,您就会明白这一点。见下文:

.war 文件是在应用服务器内运行的 Web 应用程序存档,而 .jar 是在用户计算机上运行桌面应用程序的 Java 应用程序存档

因此,如果您希望在同一应用服务器下运行多个应用程序,请选择 war。虽然趋势是 jar 文件具有 0 服务器配置并且能够在任何地方运行(例如 springboot fat-jar)。

如果我使用war,spring boot admin会按预期工作吗?这是您的应用程序和服务器以及机器的其他设置,war或jar类型与它无关。 p>

【讨论】:

    【解决方案2】:

    我建议您使用带有 JAR 和 docker 容器的 Spring Boot 应用程序。

    • 如果您的项目之一泄漏内存或 CPU 会发生什么,这意味着 你的tomcat会失败吗?
    • 如果您需要重新启动其中一个项目会怎样?

    另一方面,如果您的项目相互依赖,您可能需要使用 war。

    没有更好的方法,这取决于项目和您对 docker 的 devOps 的了解。就个人而言,我使用 Jar 运行我所有的项目,以使用或不使用 docker 进行单独的进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-11
      • 2018-03-04
      • 2019-03-23
      • 2022-11-10
      • 2019-01-10
      • 2017-12-03
      • 2017-04-15
      • 1970-01-01
      相关资源
      最近更新 更多