【问题标题】:Spring cloud config server for multiple stage用于多个阶段的 Spring Cloud 配置服务器
【发布时间】:2021-09-20 16:42:14
【问题描述】:

我正在使用 Spring Cloud 配置服务器,我需要为每个阶段 prod test 和 dev 创建一个配置文件,我已经为默认配置文件创建了 4 个 yml 文件 application.yml,application-{profiles} 用于每个配置文件,所以我的问题是如何通过环境变量加载特定配置并在每个配置文件配置和端口上运行配置服务器,我已经创建了一个 bootstrap.yml 但我无法解决问题。 如果有人能指导完成这些步骤来满足我的需求,我将非常感激。

【问题讨论】:

    标签: microservices spring-cloud spring-profiles spring-properties spring-cloud-config-server


    【解决方案1】:

    您不需要在每个环境中使用不同的配置文件和不同的端口启动 Spring Cloud Config Server。您可以拥有一个管理所有环境配置的配置服务器。在您客户的bootstrap.yml 中,您需要提供配置服务器的 URL,如下所示:

    spring:
      cloud:
        config:
          uri: http://your-config-server
    

    当您使用特定配置文件(例如,通过环境变量 spring_profiles_active=dev)运行客户端应用程序时,Spring Cloud Config Client 将从配置服务器获取目标配置文件的配置属性。

    我建议至少查看Quick Start section of the Spring Cloud Config documentation 并尝试那里提供的示例。

    【讨论】:

    • 感谢您的回复,我的想法是我的公司要求需要根据 prod dev 等配置文件运行配置服务器本身。
    • 据我了解,您希望为每个环境运行一个配置服务器部署。如果您这样做,您将需要按照我在每个配置文件的答案中提供的那样定义配置服务器 URI。这可以通过 Spring 配置文件和相应的 bootstrap.yml 文件(例如 bootstrap-dev.ymlbootstrap-prod.yml 等)来实现,或者通过环境(例如 CONFIG_SERVER_URI 的变量)注入配置服务器 URI 并引用它在bootstrap.yml 中,具有如下占位符属性:spring:cloud:config:uri: ${CONFIG_SERVER_URI:http://localhost:8888}
    • 请参阅以下与我上面提到的相关的帖子:stackoverflow.com/questions/36934873/…
    • 感谢您的回复,我已经用相同的概念实现了它:为每个配置文件创建 application.yml,然后根据特定配置文件运行服务器
    猜你喜欢
    • 2017-09-07
    • 2017-07-25
    • 2023-03-24
    • 1970-01-01
    • 2018-08-24
    • 2016-09-12
    • 2020-09-27
    • 2021-03-21
    • 1970-01-01
    相关资源
    最近更新 更多