Spring boot Spring启动-在不同端口上启动2个Tomcat服务

Spring boot Spring启动-在不同端口上启动2个Tomcat服务,spring-boot,tomcat,Spring Boot,Tomcat,我需要2个独立的RESTAPI在我的项目,绑定和监听不同的端口。如果启用,spring将使用application.properties文件中server.port参数中给定的端口初始化Tomcat。我想在另一个端口启动另一个Tomcat服务 理想情况下,我希望将函数绑定到带有注释的调用,就像使用原始Tomcat服务一样(例如@RequestMapping@GetMapping等) 有没有一种方法可以实现这一点,而不必手动初始化新服务并将功能绑定到它?我想您需要在不同的端口上运行两个实例并执行相

我需要2个独立的RESTAPI在我的项目,绑定和监听不同的端口。如果启用,spring将使用application.properties文件中server.port参数中给定的端口初始化Tomcat。我想在另一个端口启动另一个Tomcat服务

理想情况下,我希望将函数绑定到带有注释的调用,就像使用原始Tomcat服务一样(例如
@RequestMapping@GetMapping
等)


有没有一种方法可以实现这一点,而不必手动初始化新服务并将功能绑定到它?

我想您需要在不同的端口上运行两个实例并执行相同的工作。这是真的吗? 如果是,则需要
负载平衡器

如果您熟悉
eureka
zuul
,您可以通过混合它们来实现您的目标

我列出了一般步骤,但您需要做一些研究

1-创建您的应用程序。 2-启动应用程序的2个实例,并将其注册到
eureka discovery service

3-创建一个
zuul
网关,并在正在运行的实例之间分发即将到来的请求。

为什么要将它们绑定到两个不同的端口?作为项目要求。2客户端的2个现有API使用不同的端口和DTO(使用一些相同的路径)。我们需要匹配现有的接口。为什么不创建两个Spring引导应用程序呢?这两个接口大部分重叠,主要做相同的事情。它们只是在数据类型和路径名上存在差异。让N个不同的API简单地将这些调用转换为一组公共函数会更有意义。您可以使用一个公开的端口以正确的方式构建应用程序,并将其置于apache反向代理之后,该代理侦听两个端口(如果在同一主机上运行,则仅侦听另一个端口)然后将它们重定向到公共应用程序端口。这样,您就不会打乱应用程序设计,而客户机用例也能正常工作。