Springboot:在同一台服务器上部署多个应用程序

时间:2018-05-10 05:04:35

标签: spring spring-boot web-deployment executable-jar

在同一台服务器上部署多个Springboot应用程序的最佳策略是什么。

我应该为每个应用使用不同的端口吗?如果我说50个应用程序怎么办?可以使用50个不同的端口吗?在这种情况下,如果我想要一个外部世界的单一入口点,我应该在前面构建一个控制器应用程序来将请求路由到这50个应用程序。

有更好的方法吗?我不会在单个大型WAR部署中部署所有应用程序,同时需要一种更好的方法来使用单个端点路由传入呼叫。

2 个答案:

答案 0 :(得分:0)

如果您的服务器足够强大,可以处理这50个应用程序,那么您可以将每个应用程序放在不同的端口上。

将它们暴露给外界的常见方法是将API Gateway放在它们的前面 - Nginx或Spring Cloud Zuul或基于Spring Cloud Gateway的应用程序将完成这项工作(取决于您需要的复杂网关)。

答案 1 :(得分:0)

您是否应为每个应用使用不同的端口?是。

您采用Spring Boot的原因之一可能是因为您希望拥有一个用Java编写的Cloud Native App。创建Spring Boot是为了符合Cloud Native App要求,嵌入式Java应用服务器具有可参数化的侦听(或服务)端口。

如果您遵循Cloud Native Application的最佳实践,则应通过Java JVM选项对端口进行参数化。

Cloud Native Apps允许部署者指定要使用的IP地址和端口,以便回答您的​​问题,而不是管理您自己的来电路由,您可能需要采取云托管应用的几个步骤,以及您的云端延迟管理系统改为路由(例如Kubernetes)。