【问题标题】:Spring Cloud Config Server excample - overrides in application configSpring Cloud Config Server 示例 - 在应用程序配置中覆盖
【发布时间】:2015-09-13 17:39:01
【问题描述】:

我尝试设置一个 Spring Cloud 配置服务器并从 github 上提供的示例开始。 https://github.com/spring-cloud-samples/configserver

但是我对 application.yml (https://github.com/spring-cloud-samples/configserver/blob/master/src/main/resources/application.yml) 配置文件有点困惑。这是关于配置文件“latice”的覆盖部分

spring:
  profiles: lattice
  cloud:
    config:
      server:
        overrides:
          eureka:
            client:
              serviceUrl:
                defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/
            instance:
              hostname: $\{CF_INSTANCE_IP:localhost}
              nonSecurePort: $\{CF_INSTANCE_PORT:$\{PORT:$\{server.port:8080}}}      
eureka:
  instance:
    hostname: ${CF_INSTANCE_IP:localhost}
    nonSecurePort: ${CF_INSTANCE_PORT:${PORT:${server.port:8888}}}
  client:
    serviceUrl:
      defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/

为什么需要覆盖?基本上它与下面的 eureka 设置中定义的相同。 我也没有在文档中找到任何关于覆盖的内容。

非常感谢您的帮助

干杯 弗洛里安

【问题讨论】:

  • 好问题,乍一看,关于 overrides 属性的文档中没有出现任何内容。查看源代码,它似乎是一种覆盖客户端设置的方法。每个代码 cmets:Extra map for a property source to be sent to all clients unconditionally

标签: spring-cloud


【解决方案1】:

和下面的配置不太一样。一方面,配置服务器不会将自己的配置发送给客户端(覆盖除外)。另一方面,请注意转义 (\) 以防止在发送给客户端之前解析占位符。这意味着客户端的 eureka 主机名(例如)是使用其自己的值 CF_INSTANCE_IP 而不是服务器的值构造的。

【讨论】:

  • 所以我以前见过的转义。但是它覆盖了哪个客户端 eureka 客户端配置?它自己的还是连接到云配置服务器的客户端?基本上我会假设第二个选项(配置服务器客户端)是这种情况,否则我真的不明白为什么需要这样做。
  • 它最终被客户端使用,所以我猜是后者。
猜你喜欢
  • 2015-05-31
  • 2019-07-14
  • 2019-08-11
  • 2021-10-09
  • 2017-06-23
  • 2015-10-11
  • 2016-07-06
  • 1970-01-01
  • 2019-01-19
相关资源
最近更新 更多