Spring Cloud Config:客户端不尝试连接到配置服务器

Posted

技术标签:

【中文标题】Spring Cloud Config:客户端不尝试连接到配置服务器【英文标题】:Spring Cloud Config: client doesn't attempt to connect to the config server 【发布时间】:2021-02-26 09:50:11 【问题描述】:

我正在尝试创建一个简单的 Spring Cloud Config 服务器/客户端设置,并且大致遵循文档:

https://cloud.spring.io/spring-cloud-config/reference/html/

到目前为止,我已经实现了一个似乎可以正常工作的服务器,即当我调用相应的端点时返回正确的属性值:

GET http://localhost:8888/config-client/development


  "name": "config-client",
  "profiles": [
    "development"
  ],
  "label": null,
  "version": null,
  "state": null,
  "propertySources": [
    
      "name": "classpath:/config/config-client-development.properties",
      "source": 
        "user.role": "Developer"
      
    
  ]

但是,我无法让客户端连接到服务器。我做了以下事情:

    添加了spring-cloud-starter-config 依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
    添加了bootstrap.properties 文件:
spring.application.name=config-client
spring.profiles.active=development
spring.cloud.config.uri=http://localhost:8888

但我仍然得到一个

java.lang.IllegalArgumentException: Could not resolve placeholder 'user.role' in value "$user.role"

尝试运行客户端应用程序时。

应用程序日志中没有任何内容显示客户端正在尝试与配置服务器进行通信。

链接到重现问题的 minimal GitHub 存储库: https://github.com/Bragolgirith/spring-cloud-minimal

重现步骤:

    构建并运行config-service 应用程序 构建并运行config-client 应用程序

知道我做错了什么吗?

【问题讨论】:

我会检查的 【参考方案1】:

好的,谜题解决了。

似乎一周前发布了一个新的 Spring Cloud 版本 (https://spring.io/blog/2020/10/07/spring-cloud-2020-0-0-m4-aka-ilford-is-available),它有一种激活引导过程的新方法 - 现在默认情况下不会发生,但需要添加额外的依赖项:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

虽然这个新版本现在是您在使用 Spring Initializr,文档仍未更新以反映更改 - 它们仅在发行说明中简要提及。

作为使用上述spring-cloud-starter-bootstrap 依赖项和bootstrap.properties 文件的替代方法,现在看来以下方法也是可能的(甚至是首选):

application.properties

spring.application.name=config-client
spring.profiles.active=development
spring.config.import=configserver:http://localhost:8888

【讨论】:

我怀疑是否可以通过 application.properties 我收到此错误 20:10:34.729 [main] 错误 org.springframework.boot.SpringApplication - 应用程序运行失败 java.lang.IllegalStateException: Unable to load config data from 'config-server:@ 987654322@' 在 org.springframework.boot.context.config.StandardConfigDataLocationResolver.getReferences(StandardConfigDataLocationResolver.java:128)

以上是关于Spring Cloud Config:客户端不尝试连接到配置服务器的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Config客户端使用

Spring Cloud Config教程客户端使用

spring cloud config客户端未从配置服务器加载配置

通过总线机制实现自动刷新客户端配置(Consul,Spring Cloud Config,Spring Cloud Bus)

Spring Cloud Config 服务端与 客户端之间的关系

Spring Cloud Config:客户端不尝试连接到配置服务器