Tomcat 在IntelliJ Idea中开发微服务

Tomcat 在IntelliJ Idea中开发微服务,tomcat,intellij-idea,Tomcat,Intellij Idea,我们正在慢慢地将tomcat应用程序迁移到微服务,这意味着我们同时需要几个tomcat应用程序。这在kubernetes集群中很容易实现,但在开发环境中不容易实现 我们正在使用IntelliJ Idea,运行一次tomcat实例并将所有应用程序部署到该实例中是最容易的。这似乎是一个问题,因为Idea运行到java.net.BindException:地址已在使用中(绑定失败),因为它试图绑定到在其他运行的微服务中绑定的端口 做这些事情的最佳实践是什么?如何运行多个实例而不必在不同的端口上运行多个

我们正在慢慢地将tomcat应用程序迁移到微服务,这意味着我们同时需要几个tomcat应用程序。这在kubernetes集群中很容易实现,但在开发环境中不容易实现

我们正在使用IntelliJ Idea,运行一次tomcat实例并将所有应用程序部署到该实例中是最容易的。这似乎是一个问题,因为Idea运行到
java.net.BindException:地址已在使用中(绑定失败)
,因为它试图绑定到在其他运行的微服务中绑定的端口


做这些事情的最佳实践是什么?如何运行多个实例而不必在不同的端口上运行多个Tomcat?

在开发微服务时,应用程序运行在哪里(哪个端口上)应该无关紧要。我使用开发配置文件/config在不同的端口上本地运行我的微服务(基于spring boot)

在本地和生产环境中,我们的微服务都使用类似ActiveMQ的消息代理相互通信。这样,它们在哪个端口上运行并不重要

所以我的建议是:只需在不同的端口上运行它们,并确保它们不依赖于使用服务注册表的端口


如果您添加有关设置和应用程序的更多详细信息,我们可能会为您提供有关如何完成设置和应用程序的更详细答案。

这很有意义,谢谢。因此,基本上,对于每个服务,我们应该手动选择不同的端口(在IntelliJ Idea中,没有办法(据我所知)自动选择端口并将其分发给某些消息服务。然后我还必须手动配置此MB。在本地开发时是否有更聪明的概念?设置很简单:Java 9+Tomcat+Spring。只需在“dev”中的Spring配置中提供(硬代码)端口配置文件。例如,8081用于服务A,8082用于服务B等。我们故意从8081开始,因为8080是为MB保留的。