如何从不同的 Consul 上下文中获取多个 Consul KV?

How to get multiple Consul KVs from different Consul context?

我在 Consul 上存储了这些 KV 源:

config/books/<key>
config/common/<key>

并且在我的 spring 启动应用程序 application.yml 中,我将其配置如下:

spring:
  application:
    name: sampleapp
  cloud:
    consul:
      host: localhost
      port: 8500
      config:
        enabled: true
        prefix: config
        defaultContext: books

我知道我所做的这个配置已指示应用程序从 config/books 读取。

但我不知道如何从 config/common 和 [= 中检索 Consul KV 配置23=]config/books.

那里不是很灵活,但是如果您重命名项目并同时使用 defaultContext 就可以做到。基于 documentation Spring Cloud Consul Config 采用以下路径:

config/testApp,dev/
config/testApp/
config/application,dev/
config/application/

其中 testApp - 您的应用名称,application - 默认上下文

所以使用下面的配置它会起作用

spring:
  application:
    name: books
  cloud:
    consul:
      host: localhost
      port: 8500
      config:
        enabled: true
        prefix: config
        defaultContext: common

在 运行 此配置后记录:

Located property source: CompositePropertySource {name='consul', propertySources=[ConsulPropertySource {name='config/books/'}, ConsulPropertySource {name='config/common/'}]}