当前位置: 首页 > 知识库问答 >
问题:

如何将2个微服务从2个不同的jar部署到spring boot中的同一端口

臧亦
2023-03-14

我刚到Spring Boot。我在某个服务器的80端口部署了一个微服务。此服务的URL模式根为“/test”。

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

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

共有3个答案

赵灼光
2023-03-14

如果你有两者的密码,

不需要代码,只需包含类名(通过扫描jar或询问开发团队) 可以创建一个新的 main 方法,扫描所有包并将它们添加到上下文中。然后启动该方法。我认为它会扫描类路径中的所有罐子。因此,即使您的新主方法在一个 jar 中,它也会扫描另一个 jar 中的类。这样就不必重新包装到一个罐子里。

这是保持一个JVM和一个端口的一种方法。

蒂米尔建议的代理方法也很好。我建议不要使用Java微服务,而是使用Nginx或apache web服务器进行组合,在不同的系统中运行两个Java进程,或者在与web服务器相同的系统中使用不同的端口。

蓝侯林
2023-03-14

让第三个微服务作为其他两个微服务的代理。根据请求内容、上下文、URL模式或任何适合您的特定应用程序的内容将请求转发给他们。

武卓
2023-03-14

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

1、已经提到的在服务前面使用代理的方式,所以用户认为他们运行的是同一个端口,但实际上不是。Ngin x对此有一个漂亮的代理功能,Netflix的Eureka也是20%。

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

将这两个服务放在单独的 Docker 容器中。(但是您仍然需要向外界公开不同的端口,因此此答案是一种作弊。

选项2可能是最近的,你还在爪哇…但这不是2018年在Spring启动领域部署东西的时髦新方式。

 类似资料:
  • 我目前正在开发一个云备份解决方案,其中涉及到多达8个在spring-boot中开发的微服务,并使用mongo DB atlas作为持久层。 微服务包括Netflix ZUUL API网关和Netflix Eureka作为服务发现机制。微服务被要求彼此进行明显的对话。 对微服务进行了对接。到目前为止,我已经使用docker-compose文件将它们部署到EC2实例中,该文件列出了使用docker网络

  • 例如,我有两个心率监视器与我的平板电脑配对。我正在使用这样的代码来获取HRM设备列表: 然后,我在GUI中显示一个列表框,其中包含从设备[I]获取的设备名称。名称例如,我选择索引为0的设备。然后我可以访问it人力资源服务和人力资源管理特征: 除了心率,我还需要电池状态。如何访问同一(已选择)设备的电池服务?

  • 问题内容: 我有以下代码在PDF内绘制垂直条形图和折线图。 如何将这2个图形保存在PDF的2个不同页面中。我看到可以使用- 但是,不是使用Canvas,而是使用其中 不存在方法的Drawing对象。 如何将2个图形保存在PDF的2个不同页面中?第二个图形(折线图)的右边与第一个图形(垂直条形图)重叠,从而阻碍了该条形图。 这是我的 代码。 问题答案: 制作画布并在其上渲染图形: 希望能帮助到你 :

  • 问题内容: 我需要在一个查询中计算两列中某些数据的出现总数。数据库位于SQL Server 2005中。 例如,我有此表: 我需要查询一个结果: 1.名为“约翰”的人数 2.年龄超过30岁的“约翰”的人数。 我可以通过这种方式对子查询进行操作(这只是示例): 但这非常慢,我正在寻找更快的方法。 与使用子查询相比,您是否知道一种更好的方法来计算一个查询中的少量计数? 问题答案: 使用CASE语句,您

  • 问题内容: 请帮我解决这个问题。 我有2个相同的表,一个是时间表,另一个是timetable_bk。这两个表具有相似的属性或字段。现在,我想将2个表映射到一个实体类(alltimetable)。 我已经尝试过Inheritance.TABLE_PER_CLASS策略,但是当我从AllTimetable查询使用时。它什么也没返回。 请帮我。我搜索了很多次,但是还没有得到答案。 最好的祝福。 问题答案

  • 我有一个4类的代码,甲板,卡,玩家和测试。 我的想法是创建一个21点游戏,玩家有你的“手”与甲板上提供的卡。我的代码工作正常,但是我只想要一个方法返回两个不同的数组。 我的代码简历: 牌:一张牌(价值,花色) 套牌:创建一个包含 52 张牌的牌阵列。一个类的方法提供Cards()来获取玩家的卡。 玩家:一类有牌阵列的“手牌” 问题在哪里? 看“Deck”类,我使用了2个方法,provideCard