【问题标题】:How to deploy two .jar files on the same port?如何在同一个端口上部署两个 .jar 文件?
【发布时间】:2018-10-25 10:39:54
【问题描述】:

我想知道如何使用 Jenkins 在同一个端口上部署两个不同的 .jar 文件。

这两个 .jar 文件是由 Jenkins 构建的,我只是想知道是否有比重新构建项目以构建 .war 文件并使用单个 Tomcat 容器部署它们更好的选择?

编辑: 我问这些问题的原因是因为我正在使用多个微服务构建一个 webapp,因此我对如何使用“最佳实践”来做到这一点很感兴趣。

【问题讨论】:

  • 不可能在同一个端口上运行多个应用程序,也不可能在同一个JVM上运行多个JAR文件,所以这可能是不可能的。但是,您始终可以添加反向代理,以便它们都“在同一端口上”运行(= 反向代理的端口),但我不知道这是否能解决您的问题。也许添加到为什么要让它们在同一端口上运行的问题可能会有所帮助。
  • 最佳实践是将它们合并到一个应用程序中,或者将它们部署为 tomcat 中的战争。或者使用类似基于 OSGI 的平台,允许您热部署模块(这与在 tomcat 中部署战争基本相同......)

标签: java spring maven spring-boot jenkins


【解决方案1】:

听起来您想要的是您的客户可以用来访问您的服务的公共访问点。您可以通过创建将请求路由到正确服务的 API 网关服务来实现此目的。您原来的两个服务侦听不同的端口,但您的客户端只需要知道 API 网关端点,API 网关本身就会路由请求。

查看Spring-cloud-zuul 或此tutorial 了解如何执行此操作。

【讨论】:

  • 感谢您的快速回答,这听起来是一个很好的解决方案。
猜你喜欢
  • 2012-03-22
  • 2018-10-21
  • 1970-01-01
  • 2022-01-25
  • 2018-12-28
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多