繁体   English   中英

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

[英]Deploying Multiple Spring Boot Web Applications in Single Server

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

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

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

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

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

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

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

我的建议是:

  • 如果这些WAR彼此独立,则将它们部署在不同的Web服务器中,不仅要部署在Tomcat或正在使用的任何容器中,还要部署在不同的虚拟服务器,专用服务器或Cloud实例中。
  • 您可以在不同的“虚拟服务器”中进行部署,从而可以水平扩展,因此这对将来的工作负载很有用。
  • 从托管服务提供商部署负载平衡器,也可以使用Nginx进行此操作。

希望这可以帮助!

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM