gpt4 book ai didi

java - 来自 Spring Config Server 的配置覆盖服务器端口 vm 参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:58 26 4
gpt4 key购买 nike

我有以下服务:

  1. Spring Cloud 配置服务器
  2. Eureka 发现服务
  3. 事件服务(spring boot 应用)

我使用“配置优先”模式。这意味着我先启动 Config Server,然后再启动 Discovery Service。

然后我运行事件服务。它从配置服务器获取配置。在配置中,我指定 server.port 属性等于 8081。

我看到我的事件服务正在发现服务中注册。

当我尝试再启动一个事件服务实例时,问题就出现了。要在不同的端口上运行它,我使用 -Dserver.port vm 参数。所以我的命令看起来像:

java -jar event-service.jar -Dserver.port=8082

但是应用启动失败,提示8081已经被占用。似乎事件服务使用来自配置服务器的配置,并且此配置优先于 VM 参数。但我认为它应该是 vice-verca。

最佳答案

您的命令行参数顺序错误:系统变量 必须在 jar 文件之前:

$ java -jar -Dserver.port=8082 event-service.jar

从命令行指定属性的 3 种方法

  • 环境变量:$ server_port=8082 java -jar event-service.jar
  • 系统变量:$ java -jar -Dserver.port=8082 event-service.jar
  • 命令行参数:$ java -jar event-service.jar --server.port=8082

请注意,对于环境变量被替换为下划线

来源:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

关于java - 来自 Spring Config Server 的配置覆盖服务器端口 vm 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39967380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com