当前位置: 首页 > 知识库问答 >
问题:

为每个配置文件组配置spring cloud config server

蒯宇定
2023-03-14

我的环境很少。有:

  • 本地
  • 开发
  • 测试
  • 问答
  • LOD
  • 产品

如果config server连接到所有这些服务器,则所有内容都将被清除。

在我的情况下,我需要为每个组配置服务器:

  • 在开发人员控制下
  • 在qa控制下
  • Near devops控件

组连接到权限和不同的环境。

因此,我需要为每个客户提供如下内容:

# default configs for local, dev, test profiles
spring:
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://local-dev-test-configuration-server:8888

---
# **bootstrap-qa.yml**
spring:
  profiles: qa
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://qa-configuration-server:8888

---
# **bootstrap-prod.yml**
spring:
  profiles: prod,lod
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://lod-prod-configuration-server:8888

哪里

  • local-dev-test-configuration-server可以访问localdevtest服务器配置;
  • QA-Configuration-Server可以访问QA配置;
  • lod-prod-configuration-server只能访问prodlod配置。

我研究了Spring Boot文档,但没有遇到过bootstrap.yml分析。

  1. 我应该遵循哪种方式来满足我的需求(管理3个不同的配置服务器和相应的配置文件)?
  2. 我检测到可以为同一配置服务器配置不同的git资源。这种方法是否适合我的情况(我还必须管理很少的存储库以保留所需的配置)?我不这样认为。由于可见性不同,我需要为不同的env配置很少的配置服务器。因此,我需要根据配置文件对每个使用者配置主机名进行配置。

共有1个答案

金皓君
2023-03-14

为Spring-Cloud-Configuration-Servers配置客户端有两种可能的解决方案:

  1. Spring-Boot支持bootstrap.yml中的配置文件,因此所提供的配置可以用作解决方案
spring:
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://local-dev-test-configuration-server:8888
---
spring:
  profiles: qa
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://qa-configuration-server:8888

---
spring:
  profiles: prod,lod
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://lod-prod-configuration-server:8888
spring:
  application:
    name: discovery-service
  cloud:
    config:
      uri: http://local-dev-test-configuration-server:8888

在这种情况下,解决方案是使用-dspring.cloud.config.uri=http://localhost:8888参数重写required属性,例如:

java -Dspring.profiles.active=localhost -Dspring.cloud.config.uri=http://localhost:8888 -jar ./target/discovery-service-0.0.1-SNAPSHOT.jar

方法可以是混合的。

 类似资料:
  • 寻找在Springboot应用程序中配置多个配置文件特定属性文件的最佳方法。下面是一个例子: -资源  · --application.properties  · · · · · --德夫             --application-dev.properties             --ldap-dev.properties             --Quartz-Dev.Prope

  • 你知道 Puppet 能做微创手术吗? 通常,我们不希望将整个配置文件交由 Puppet 管理而仅仅是在配置文件中添加某项设置 — 尤其是如果该文件是由别人管理,我们不能覆盖它的情况。 一种简单而有用的方法是,如果配置文件中不存在指定的行就添加这行配置。例如: 添加一个内核模块名到配置文件 /etc/modules 告知内核在启动时加载此模块。 你可以使用一个 exec 资源达成此任务。下面的例子

  • 1-我有一个带有Spring Boot的API,我需要配置两个DBMS(MySQL和Postgres)。 2-对于每个DBMS,我需要配置不同的配置文件。(Dev,Prod) 遵循我的MySQL配置类: 我以为我的出口是: 重要: 当我将配置文件配置为连接到我的MySQL Dev数据库时,我只想连接到它。我想要同样的结果,当它是MySQL的Prod的基础时。 当我将配置文件配置为连接到我的Post

  • 配置文件使用的是 JSON 格式。 JSON 中使用的数据结构和变量名对应着 Burp UI 中显示选项。生成配置文件的最简单方法是在 Burp UI 中创建所需的配置,然后保存为配置文件。您还可以手动编辑现有的配置文件,其内容是很容易就可以看懂的。 部分配置文件可以在需要时使用。您可以通过每个子工具选项卡的配置面板上的”选项(Options)”按钮来保存该区域的配置,或者通过从完整配置的文件中删

  • 我不确定我是否很好地理解了Spring概要文件是如何处理yaml和属性文件的。我试图将这两种类型的配置分开(这两个文件不共享任何配置),但在从yaml配置中读取配置文件时遇到了问题。 我的问题是,当我试图(通过xml)配置我的数据源时,这样做: Spring总是使用YAML文件中的最后一个配置,忽略概要文件。我试图通过web.xml中的contex-parameter或直接将活动概要文件传递给JV