春季靴作为战争与罐子

时间:2019-10-31 11:27:05

标签: java spring spring-boot

我们正在开发具有Spring-boot和REST的中间件平台,并且不打算使用完全微服务架构,而是基于功能创建小型服务。 例如:catalog-service-api用于在目录上进行CRUD操作,而IoT用于online-services-api。

1。我应该去打仗还是打罐子?

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

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

2。如果我发动战争,Spring Boot管理员会按预期工作吗?

我们正面临在一台服务器中部署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);
    }
 }

客户端application.properties:     spring.boot.admin.client.url = http://localhost:8085     spring.boot.admin.client.service-url = http://localhost:8085/spring-boot-admin-server

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

请提出建议。

2 个答案:

答案 0 :(得分:0)

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

该选择完全取决于您。我认为,如果您了解基本差异,您将会理解。见下文:

  

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

因此,如果要在同一应用程序服务器下运行多个应用程序,请选择war。尽管趋势是将JAR文件的服务器配置为0,并且可以在任何地方运行(例如springbooot fat-jar)。

如果我喜欢战争,spring boot admin是否可以按预期工作?这是您的应用程序和服务器以及其他机器设置,战争或jar类型与之无关。 >

答案 1 :(得分:0)

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

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

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

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