【问题标题】:Running 5 Spring boot application as standalone vs Deploying all in one Tomcat独立运行 5 个 Spring Boot 应用程序与在一个 Tomcat 中部署所有应用程序
【发布时间】:2015-06-19 08:26:35
【问题描述】:

我有 5 个 Spring Boot 应用程序,我必须在一台机器上运行它们。

运行这些最有效的方法是什么

  1. 将所有微服务分别作为不同的微服务运行
  2. 在 tomcat 猫服务器中一起部署为 WAR

我没有任何特殊要求。我只想知道在内存、I/O、处理、延迟、可扩展性方面哪个是有效的

【问题讨论】:

  • 这是自以为是的。如果是关于内存 -> 战争(有点),i/o,处理,延迟 -> 没关系,可扩展性 -> 微;启动/重新部署时间,容错/隔离 -> 微
  • 你的意思是运行5个微服务就等于全部部署在Tomcat中?
  • 据我了解您的情况 - 您有 5 个应用程序,现在您询问是在一个 tomcat 中将其作为 5xjava 还是 5xwar 运行。当我们“比较”例如由于 DB 查询的 I/O,这 5 个应用程序将执行一些 DB 查询,无论它们是作为独立 java(带有嵌入式 tomcat)还是在一个 tomcat 服务器中运行......因此我看不出有任何显着差异。

标签: spring tomcat spring-boot


【解决方案1】:

例如,如果您的某个应用程序出现故障,您应该使用 Spring Boot 仅重新启动该应用程序。否则,您应该重新启动安装了所有应用程序的整个 Tomcat 服务器。

另一件事是处理和可扩展性:如果您有相互独立的模块(在您的情况下是应用程序),那么维护和修改它们总是更简单而不会影响另一个模块(参见第 1 项)。

就内存、I/O 和延迟而言,请参阅第 1 项 - 处理一个单独的应用程序总是比一次处理大量应用程序更容易。 :)

因此,如果您的应用程序松散耦合(例如通过功能),您的情况可能是 Spring Boot,否则您可以使用 Tomcat 服务器。

【讨论】:

  • 一个应用失败是什么意思?以及为什么我不能进行热部署。请解释一下您的“松散耦合,spring boot和tomcat服务器”..这里所有这些之间的关系是什么...
  • 应用程序失败 => 这意味着需要重新部署应用程序(它并不总是以“autoDeploy”属性'true'启动Tomcat服务器:(
  • 在这种情况下松散耦合意味着您的所有 5 个应用程序都不能解决同一个 问题,并且完全有不同的目的。如果是的话,你可以使用Spring Boot,对我来说。
  • 还有一个问题:您打算将所有应用程序部署为一个 WAR 还是为每个应用程序部署不同的 WAR?
  • 第一种情况,我想你应该再看一遍我之前写的;)第二种情况,我想选择Spring Boot是显而易见的(因为它更方便,不需要部署和刚刚启动应用程序时的额外步骤)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 2017-07-04
相关资源
最近更新 更多