首页 > 解决方案 > 如何在 Spring Boot 中将 2 个不同 jar 中的 2 个微服务部署到同一个端口

问题描述

我是 Spring Boot 的新手。我已经在某些服务器的 80 端口部署了一个微服务。此服务的 URL 模式根为“/test”。

然后我将不得不将另一个微服务部署到同一台服务器的同一端口中。它的 URL 模式是来自另一个不同 jar 的“/test2”。

是否可以将指向 2 个不同 URL 的 2 个不同 jar 部署到同一个端口?

标签: javaspringspring-boot

解决方案


有两种不同的方法可以做到这一点:

1、前面已经提到了使用代理的方式,让用户以为他们运行的是同一个端口,其实不然。Nginx 有一个很好的代理功能,Netflix 的 Eureka 也有 20%。

  1. 将您的两个 Spring 应用程序构建为 .war 文件,并将它们部署到应用程序服务器,如(非嵌入式)Tomcat。有一篇关于如何生成 .war 并将其部署到独立 Tomcat 的好博客文章

  2. 将这两个服务放在单独的 Docker 容器中。(但是您仍然需要向外界公开不同的端口,所以这个答案有点作弊。

选项 2 可能是最接近的,而且您仍在 Javaland 中……但这并不是 2018 年在 Spring Boot 中部署事物的最新方式。


推荐阅读