我有以下服务:
- Spring Cloud 配置服务器
- 尤里卡发现服务
- 事件服务(spring boot 应用)
我使用“配置优先”模式。这意味着我先启动 Config Server,然后再启动 Discovery Service。
然后我运行事件服务。它从配置服务器获取配置。在配置中,我指定 server.port 属性等于 8081。
我看到我的事件服务正在发现服务中注册。
当我尝试再启动一个事件服务实例时,问题就出现了。要在不同的端口上运行它,我使用 -Dserver.port vm 参数。所以我的命令看起来像:
java -jar event-service.jar -Dserver.port=8082
但是应用程序无法启动,说8081已经在使用中。似乎事件服务使用来自配置服务器的配置,并且此配置优先于 VM 参数。但我在想它应该是反之亦然。