在单个服务器中部署多个Spring Boot Web应用程序

时间:2017-12-04 02:09:55

标签: java spring spring-mvc tomcat spring-boot

我有5个Spring Boot Web应用程序,但只有一个服务器(低端)。

将所有5合1服务器部署的最佳方法是什么?只有一个Web容器(Tomcat)并在同一个Tomcat上将它们全部部署为单独的war文件,或者在不同的Tomcat容器上运行所有5个(Spring Boot默认行为)?

通过考虑性能和可维护性,您的建议是什么?

4 个答案:

答案 0 :(得分:1)

恕我直言,如果您正在运行资源受限的服务器,最好的办法是将所有应用程序部署为单个tomcat实例下的war文件。运行多个服务器只会增加不必要的开销。

答案 1 :(得分:1)

如果您的服务器资源很少,那么您没有太多选择。每个Java虚拟机都有很大的开销,因此运行单独的容器会使您更早地达到低端服务器的限制。

您必须在具有不同servlet上下文的同一tomcat服务器中部署您的战争。

但是,如果你有足够的RAM,我认为最干净的方法是创建docker镜像并在每个容器中运行独立的spring-boot jar。

答案 2 :(得分:0)

我的推荐是:

  • 如果这些WAR彼此独立,请将它们部署在不同的Web服务器中,不仅是Tomcat或您正在使用的任何容器,还可以在不同的虚拟服务器,专用服务器或云实例中。
  • 在不同的“虚拟服务器”中部署,您可以横向扩展,因此这有利于未来的工作负载。
  • 从您的托管服务提供商处部署负载均衡器,或者您可以使用 Nginx 来执行此操作。

希望这有帮助!

答案 3 :(得分:0)

根据我的经验,使用docker等容器是维护多个spring-boot应用程序的最简单方法。当您拥有新服务器时,可以轻松迁移它,并且可以在不中断其他应用程序的情况下更新应用程序。但您可能需要花费额外的时间来学习如何使用容器。

如果使用Tomcat,建议将tomcat实例分开。每个WAR文件一个tomcat。将多个WAR文件放在一个tomcat中会使维护变得困难。 Tomcat热部署/自动部署往往会出现一些错误,需要您重新启动整个tomcat