Spring 使用单端口启动应用程序

Spring Boot Apps with Single Port

目前,我有这样的基础设施。 客户端命中负载均衡器,它循环到我的应用程序服务器 (JBOSS)。因此,在提供 REST 端点的服务器中部署为 war 的服务很少。由于部署 war 每个服务都通过应用程序服务器(传统方式)暴露给单个端口

我打算将我的服务从我的应用程序服务器(太重)中迁移出来并将其转换为 spring 引导应用程序 (JAR)。计划是像这样重新调整基础设施

所以我担心的是,当我转换为 spring 引导 jar 时,每个服务都会暴露给不同的端口。我不打算更改负载平衡器中的任何端口以避免与客户端冲突。

有什么方法可以通过识别其上下文根将服务路由到它在应用程序上吗???

(我知道一个应用服务器可以解决这个问题。但只是想知道其他观点)

您可以将 NGINX 放在 Spring 前面 - 引导应用程序将每个上下文路径转发到所需的端口。

如您所说,应用服务器可以解决此问题,因此您只需使用其他工具(如 NGINX 或 Apache HTTP Server)复制此行为即可。

由于您打算将应用程序转换为 spring 引导,您也可以尝试 Netflix Zuul

Zuul is an edge service that provides dynamic routing, monitoring, resiliency, security, and more.

对于您的情况,您不必创建过滤器。您可以简单地创建一个用于将请求路由到您的 REST 端点的配置。