gpt4 book ai didi

java - 使用Spring云consul配置可以共享配置吗?

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:40 24 4
gpt4 key购买 nike

我们在 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

使用配置文件 dev 运行应用程序,这是从 /env 加载的配置...

    "consul:config/helloworldclient/dev/": {
"product[0].sku": "BL394D",
"product[0].quantity": 8
}

一切都很好,但我们不确定为什么剩余的领事配置部分仍然存在,以及它们的用途:

  "consul:config/application/dev/": {},
"consul:config/application/": {},

这很有趣,因为我们需要共享配置,以便多个应用程序可以从 consul 加载通用的、特定于环境的配置(如果可能的话);确定这是否是可行的解决方案的一些问题:

问题

  • 除了应用程序配置路径之外,SCC 是否还尝试从这些位置读取数据?
  • 默认文件夹 config/application 是否可配置,以便应用在启动时从 config/mysharedconfig 读取?
  • 是否适合使用 /config/application/dev 作为共享配置位置,多个应用程序可以在其中加载通用的、特定于环境的配置?

最佳答案

我正在回答我自己的问题:

基于documentation -- 以及一些快速测试 -- Consul 通过 spring.cloud.consul.config.defaultContext 支持共享属性,默认情况下设置为 application ,在启动时有效地从 consul:config/application 、consul:config/application/dev 等加载配置(当然,除了应用程序的配置之外)。而且 defaultContext 是可自定义的,因此我们将其更改为 commoncfg,然后授予所有 ACL token 从该位置读取的权限。除非您正在使用 ACL token ,否则您无需担心它们,我只是提到它,因为我们使用 token 并且此步骤是必要的。

Spring : 云: 领事: 配置: 默认上下文:commoncfg

关于java - 使用Spring云consul配置可以共享配置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48449457/

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