问题标签 [spring-cloud-config]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
529 浏览

java - 解决对 docker-compose 的依赖

我有一个 Spring Boot 微服务连接到 Spring 配置服务以获取配置,但显然,在配置服务器完全启动并运行后,该服务无法启动,否则它将永远无法再次连接(?)

这是我在运行 docker-compose 文件时在服务控制台中看到的错误:

2016-04-07 14:25:51.305 WARN 1 --- [main] cccConfigServicePropertySourceLocator:找不到 PropertySource:对“ http://configserver:8888/myservice/default ”的 GET 请求的 I/O 错误:连接被拒绝;嵌套异常是 java.net.ConnectException: Connection denied

这是我的 docker-compose 文件:

这是服务 bootstrap.yml 配置:

一旦两个服务都在 Eureka 上运行并注册(发现),我尝试调用/refreshmyservice但它一直失败并返回相同的错误。

如果我重新启动 docker 实例,它会毫无问题地连接。

这是否意味着我必须保持配置服务器连续运行才能做到这一点?

0 投票
0 回答
3344 浏览

spring-cloud - Eureka First Bootstrap - 除非 eureka 服务器具有配置服务器 URI,否则无法工作

我正在尝试将 Eureka 设置为使用云配置服务器,但 Eureka 服务器在启动时无法找到 configserver 的实例:

不确定我在配置方面缺少什么。配置服务器如下:

引导程序.yml

应用程序.yml

从配置为 bootstrap.yml (1) 的发现服务开始。似乎当 configserver 注册时,发现服务应该能够检索其配置并正确启动,但发现服务无法完全启动并且配置服务器永远无法注册。当我在 bootstrap.yml (2) 中添加附加配置时,两个服务都会启动,但发现服务从不使用配置服务器来检索其配置 (discoveryservice.yml)。如果我提供 spring.cloud.config.uri 属性,发现服务将启动并按预期从服务器检索其配置。让我觉得我遗漏了一些东西,或者 Eureka 在没有配置服务器 uri 的情况下无法从配置服务器检索其配置?

bootstrap.yml (1)

bootstrap.yml (2)

discoveryservice.yml(来自配置服务器 git repo):

0 投票
1 回答
3848 浏览

spring - Spring Boot + Spring Cloud Config - 如何从 Git 外部配置添加更多配置文件

我在 Spring Boot 应用程序中有此配置:

我的配置服务器读取以下文件:

我的应用程序 dev.yaml

我的应用程序 pro.yaml

我启动 spring boot 应用程序设置-DENVIRONMENT=dev,正确加载 dev 外部 Git 属性。

当我在假设一个控制器中注入环境时,env.getActiveProfiles()我是否按预期获得了“开发”。

我想从 git 配置中添加更多配置文件。例如:

我的应用程序 dev.yaml

我的应用程序 pro.yaml

所以env.getActiveProfiles()返回["dev","business1"]。但是它返回的是初始的"dev".

怎么可能做到这一点?

更新:

正如 Dave Syer 所建议的,我尝试spring.profiles.include在 Git 文件中使用,但新配置文件未添加到环境中:

我的应用程序 dev.yaml

我的应用程序 pro.yaml

environment.getActiveProfiles() ---> "dev"

0 投票
5 回答
2335 浏览

spring - Spring Cloud Config Server 上的属性不会注入 Spring 应用程序

我正在自学 Spring Cloud Config Server,并且在将属性注入 bean 时遇到了一些麻烦。

所以我有一个简单的 Spring Boot 应用程序作为配置客户端,仅用于测试:

但系统打印:

检查 env 端点,我实际上发现该"${greeting}"属性在环境中:

请注意,在 中configService,有一个名为的属性greeting,其值为"Webhook"

我是 Spring Framework 的新手,所以我想知道我是不是搞砸了什么?有人建议我也可以使用访问外部属性,Environment但我没有找到太多关于如何使用它的教程。任何想法?

====================================更新============= ======================== 添加配置服务器的代码:

应用程序.java:

应用程序.yml:

0 投票
1 回答
2791 浏览

spring - Spring Cloud RefreshScope 刷新后挂钩

是否有 @RequestScope 刷新后挂钩的概念?

用例:我们需要推送配置更改。目前,这是手动的,并作为应用重启的一部分触发。但是,如果我们可以触发 /bus/refresh,一旦环境被刷新,而不是销毁 bean(在这种情况下是 @Service),但是一旦新的环境值被更新,就会触发一些配置更改?这样的事情可能吗?

0 投票
2 回答
7082 浏览

java - 在 Spring Cloud Config 服务器中包含多个应用程序的通用配置

我正在尝试迁移我们稳定的应用服务器以从 Spring Cloud Config 服务器获取它们的配置。每个应用程序{my-app}.yml在配置服务器上都有一个文件,我们可以使用配置文件(在文件中命名{my-app}-{profile}.yml或使用多配置文件 YAML 文档)为每个应用程序的每个环境进行不同的配置,我们甚至可以在另一个配置文件中包含一个配置文件spring.profiles.include以提供一些某种继承 - 到目前为止,一切都很好。

但是,我们只能在彼此中包含来自同一个应用程序的配置文件,并且我们从同一个配置服务器配置了多个应用程序,它们在每个环境中共享大量配置 - 例如,它们几乎都使用相同的 DataSource 配置来连接到同一个数据库同样适用于消息传递、缓存等。这是很多重复的配置和很多需要更改的地方——这正是 Spring Cloud Config 应该避免的!

有没有办法在 Spring Cloud Config 服务器中跨应用程序“包含”(通过配置文件或其他方式!)共享配置属性?

更新

除了下面@vladsfl 的正确答案之外,请注意如果您使用配置服务器上的本机配置文件从文件系统或类路径而不是 git 存储库提供配置,配置服务器将使用 application.yml 及其配置文件变体为自己,但拒绝将它们提供给其他应用程序。解决方案是使用spring.cloud.config.server.native.searchLocations从不同位置提取服务配置。

0 投票
1 回答
561 浏览

spring-mvc - spring cloud config-server .properties 内容协商失败

Brixton.RC1对我来说,例如 for .properties 的内容协商机制在切换到 Spring Cloud或Brixton.RC2Angel.SR5和之后在 Spring Cloud Config Server 中不起作用Angel.SR6

当我使用gradlew bootRunor启动服务时会出现问题java -jar ...。它在我的集成测试中工作(见Working Integration-Test)。

使用场景:

我想访问testing应用程序配置文件中的配置my-service,所以我打电话http://localhost:8888/my-service/testing.properties

预期结果:

实际结果:

没有Accept-Header:

使用Accept-Header application/json

从示例中可以看出,内容协商机制似乎适用于错误处理,但对于配置访问却不是。

工作集成测试:

我写了以下Spock-Test

到目前为止我已经做过的事情:

  1. 为这个正在工作的场景写了一个上面的Spock-Test所有提到的版本中都有效Spring Cloud Config Server
  2. 查看ConfigServerMvcConfiguration任何明显的配置错误
  3. 自己提供一个 WebMvcConfigurer 并像上面引用的配置类一样初始化内容协商:

    /li>

任何人都可以重现此问题或为我提供有关如何解决它的任何指导吗?

0 投票
2 回答
10897 浏览

java - spring cloud - 我的 jar 外的 bootstrap.properties

我试图bootstrap.properties从我的罐子外面放,所以它不会被其他开发人员错误地覆盖。你能在这里给点建议吗?

这是它的内容 - 指向 spring 服务器配置

0 投票
0 回答
106 浏览

amazon-web-services - 使用 Spring Cloud 在持续交付中确定 AWS 部署环境

我一直在研究 Spinnaker、Spring Boot/Cloud 和 Amazon Web 服务的组合,以便为我的新雇主实现微服务的持续交付。
我最大的问题是分离 AWS 中的不同环境,并在 Spring Boot/Cloud 微服务通过从代码签入到生产的管道时确定该环境。在 AWS 中分离不同环境的最佳实践是什么?我见过单独的子账户,使用 VPC 来分隔环境。
然后下一步涉及微服务在启动时确定环境。我们计划使用 Spring Cloud Config Server 为微服务提供运行时配置。联系配置服务器时的环境判断需要在向配置服务器请求配置时设置'label'。

我所做的假设:
1. Spinnaker 或其他一些支持管道的工具被用于将工件推入各种环境。
2. 原始工件是一个自包含的 jar,理想情况下将合并到 AWS AMI 中,然后无需修改即可推送到后续部署环境中。
3. AMI 可以使用确定运行时环境所需的任何脚本来构建,并在启动时向 jar 提供该信息。
4. 实例正在由自动缩放器启动,并将启动实例(AMI),启动时不提供外部信息。

我认为这已经足够了。这可能会分成多个问题,但我想为这个过程保持一个有凝聚力的整体。

感谢您的帮助。

0 投票
0 回答
2123 浏览

spring-cloud - spring cloud config - 如何从外部 yaml 文件中读取值作为 Map

从配置服务器,我想将该属性作为地图注入到我的服务中。我可以使用 @ConfigurationProperties 注释来做到这一点;但是使用从配置服务器读取的@Value(连同@RefreshScope);但是抛出异常:无法将类型 [java.lang.String] 的值转换为所需类型 [java.util.Map]:找不到匹配的编辑器或转换策略