问题标签 [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.
java - Web 应用程序中的 Spring Cloud Config
我有部署在 Tomcat 中的旧版 Java Web 应用程序(带有 Spring MVC 和 web.xml)。我想将配置切换到 Spring Cloud Config。
这个应用程序的结构(例如,只是简化它) - 带有 Spring Controller 和服务的 jar 文件,我想做 Spring Cloud Config 兼容。还有另一个带有 web.xml 的模块,它添加了 jar 作为依赖项。
我将带有应用程序名称的 bootstrap.yml 添加到模块中,该模块打包到“resources”文件夹中的 jar 并添加“EnableAutoConfiguration”和“SpringBootApplication”注释,但出现异常:
配置服务器运行。我编写了简单的客户端,我通过 main 方法运行它并且它可以工作,但是当我在 Tomcat 中部署旧版应用程序时 - 它不起作用。
有人可以帮忙吗?
spring-boot - Spring Cloud Refresh 事件无法识别已删除的属性?
背景:
我有一个使用 Spring Cloud 运行的 Spring Boot 1.4 应用程序。我的应用程序正在使用本机配置文件从外部 config.properties 文件中提取设置。配置服务器嵌入在同一个应用程序中。
在 config.properties 文件中,我添加了以下设置:
什么有效:
当我更改属性并发送 REFRESH 事件时,标记的相关 bean 被重新加载并且更改被正确识别。
什么不起作用:
如果我实际上从 config.properties 中删除了该属性(例如通过将其注释掉),则 REFRESH 事件实际上不会刷新应用程序。Spring Cloud 似乎没有认识到属性被删除的事实,当数据绑定器继续更新世界的状态时,它错过了属性被删除的事实,并且链接到它的相应 bean 也必须刷新并且它的字段设置为空白/空等。
看起来 data-binder 只查看配置中当前可用的内容,而不记录what is 与 what is。
在 bean 配置状态中实际禁用该设置的唯一方法不是删除它,而是将其设置为一个空白值(这是一个新值,因为该设置只是一个字符串)。请注意,映射到此属性的 Java bean 中的字段除了 null 之外没有默认值,并且该值未在其他任何地方定义(如在嵌入式 application.properties 文件等中)
- 我可能会错过什么?
- 这是一个功能吗?漏洞?
谢谢你的时间。
config - 配置 spring cloud config server 以使用 vault 作为后端
这里的文档显示,配置服务器可以配置为使用 vault 作为其后端,只需设置以下属性,在application.properties
即使这样做了,当嵌入式配置服务器启动时,它也希望 Git 存储库配置如下:
它失败并出现以下异常,没有设置 git repo 属性。
我不确定如何让配置服务器查找在localhost:8200
.
spring - 在环境变量中设置 spring.cloud.config.failFast
我编写了一个 Spring Boot 服务,它是一个 Spring Cloud 配置客户端。我需要在环境变量中设置以下配置...
这样做的正常惯例是将所有内容大写并用下划线替换句点,例如
这对我不起作用。我认为这可能是因为“failFast”是驼峰式的,而几乎所有其他配置都是小写的。有没有人能够在环境变量中设置此配置?如果是这样,语法是什么?
spring-cloud-config - Spring Cloud Config Client 每 30 秒重新加载一次配置
我正在努力启用 Spring Cloud Config 并使一切正常。但是,我在服务应用程序日志中看到 INFO 消息,显示 Cloud Config Client 正在寻找大约每 30 秒从服务器重新加载配置。我在文档甚至代码中都找不到任何东西来说明为什么会发生这种情况。我真的不希望我的服务如此频繁地轮询配置服务器,理想情况下我想将其关闭,这样我就可以更好地控制何时发生配置刷新。
有人有想法么?
spring-cloud - spring-cloud-deployer - 指定 Maven 远程存储库 URL
Spring Cloud 数据流 - Cloudfoundry 服务器 (v1.0.0.M4)
在尝试在属性文件中外部化配置信息,然后在安装时使用 Spring Cloud Config Server 提供这些环境设置时,我有一个关于我通常会在 YML 中以某种方式放置的一些值的问题显现。
首先,在 YML 清单中,我可以这样定义它们:
那么我如何将这些放入属性文件中呢?这是我的猜测:
spring-cloud-config - 外化 Spring Cloud Data Flow Config - Spring Cloud Config Server
仍在努力解决这个任务。我有以下东西:
- Pivotal Cloud Foundry - 弹性运行时 1.7.5
- Spring Cloud 数据流服务器 Cloudfoundry - 1.0.0.M4
- Spring Cloud Config Server (SCCS) 服务(服务名称“scdf-sccs”)
SCCS 实例已正确连接到我的 BitBucket 存储库,并且它是在线的。我正在尝试使用以下清单推送 spring-cloud-dataflow-server-cloudfoundry-1.0.0.M4.jar:
在我的 BitBucket 存储库中,我有以下包含环境变量的属性文件:scdf-dev-abc.properties
以下是该属性文件的内容:
当我使用清单和指定的 SCCS 绑定推送应用程序时,它没有获取属性文件中指定的属性,并且我在解决问题时遇到了困难。我的配置或我提供应用程序名称和弹簧配置文件的方式是否缺少某些内容?
在弄清楚为什么 Spring Cloud Config Server 没有读取配置方面,我还应该寻找什么?例如,如果 Spring Cloud Data Flow 应用程序作为某个进程或用户运行,而该进程或用户无权访问 BitBucket 存储库,这有关系吗?
spring - 配置刷新在路由声明中不起作用
我正在使用来自 spring-cloud 的配置服务器。我希望刷新应用程序的配置而不必重新启动它。
这是我的场景:
1)application.yml中的单一配置,存储在git中
2)客户端中的Actuator和控制器中的注解@RefreshScope。
3) Spring Integration 的一个流程:
4)我更新配置并推送到git
5)运行刷新
在对控制器的其余调用中,一切正常,配置已更新。
但是在对集成流程的其余调用中,配置没有更新:
bean 的某些特殊行为会阻止刷新配置?
谢谢。
spring - 没有 Eureka、Ribbon 和 Spring Boot 的 Spring Cloud 配置客户端
我在 AWS 中运行了 Spring Web 应用程序(不是 Spring Boot)。我正在尝试创建集中式配置服务器。更改属性后如何刷新spring-cloud-client?按照教程
通过向客户端的刷新端点http://localhost:8080/refresh发送一个空的 HTTP POST 来执行执行器端点,然后通过查看http://localhost:8080/message端点来确认它是否有效。
但是我的 aws Ec2 实例位于负载均衡器后面,因此我无法调用客户端 URL。我不太了解 netflix Eureka 和 Ribbon,但似乎在客户端添加了另一个级别的负载均衡器。我不喜欢这种方法。只是为了改变一个属性,我不想让现有项目变得不必要地复杂。还有其他方法吗?还是我误解了 Eureka/Ribbon 的用法?
我看过spring-cloud-config-client-without-spring-boot,spring-cloud-config-client-without-auto-configuration他们都没有答案。第一个线程在 2015 年得到了回答。想知道有什么更新吗?
spring-cloud-stream - 在部署的流应用程序中设置 env var 值
使用以下内容:
- Spring Cloud 数据流服务器 Cloudfoundry 1.0.0.RC1
- Spring Cloud 配置服务器服务
我使用附加依赖项重建了 spring-cloud-dataflow-server-cloudfoundry,以按照说明提供它与 Spring Cloud Config 服务器的绑定。它似乎按预期工作,所以这很好。
现在出现了问题,当我尝试使用我开发的自定义模块定义流时,模块的环境变量(特别是 ENCRYPT_KEY)位于我的 git 存储库中的清单 YML 文件中。
清单文件的名称是customapp-dev.yml
. 清单如下所示:
属性文件的名称是customapp-dev.properties
. 属性文件如下所示:
该应用程序在启动 jar 中有一个名为application.properties
. 它看起来像这样:
最后,当我部署流时,我在命令行中提供了一个附加属性,如下所示:
跟踪应用程序部署的日志,我可以看到正在读取配置服务器实例,并且正在正确解析应用程序名称和配置文件。配置客户端正在映射 YML 清单和我的 git 存储库中的属性文件。
但是,错误表明占位符无法解密customapp.password
。
如果我为已部署的(崩溃的)应用程序显式设置 ENCRYPT_KEY 环境变量,并重新存储它,它会正常启动并像魅力一样工作。
我是否有另一种方法可以在部署时为流应用程序指定环境变量?