我们在 Java 8 上使用 Spring Cloud Consul Config 1.3-RELEASE 来实现简单的应用程序 helloworldclient,按预期工作bootstrap.xml
...
spring:
cloud:
consul:
token: xxxx-xxxx-xxxx-xxxx
discovery:
enabled: true
register: true
service-name: helloworldclient-xyz123
health-check-url: ${HEALTH_CHECK_URL}
config:
profile-separator: '/'
enabled: true
format: yaml
host: ${CONSUL_HTTP_ADDR}
port: 8500
application:
name: helloworldclient
使用 profile 运行应用程序dev
,这是从/env
...加载的配置
"consul:config/helloworldclient/dev/": {
"product[0].sku": "BL394D",
"product[0].quantity": 8
}
一切都很好,但我们不确定为什么剩余的 consul 配置部分甚至存在,以及它们的用途:
"consul:config/application/dev/": {},
"consul:config/application/": {},
这很有趣,因为我们需要共享配置,以便多个应用程序可以从 consul 加载通用的、特定于环境的配置,如果可能的话;确定这是否是一个可行的解决方案的一些问题:
问题
- 除了应用程序配置路径之外,SCC 是否还尝试从这些位置读取?
- 默认文件夹是否
config/application
可配置,以便在启动时应用程序从中读取config/mysharedconfig
? - 它是否适合
/config/application/dev
用作共享配置位置,多个应用程序可以加载通用的、特定于环境的配置?