我用Spring Boot开发了一个微服务。此服务正在使用Spring云配置服务器获取属性。此微服务接受标头中的版本,并根据版本执行相应的功能。在我的github repo中,我有2个分支,每个版本1个。该服务通常将以下信息发送到配置服务器以获取属性-
应用程序名称配置文件标签
是否有办法在my中使用占位符代替标签。yml文件?如果我在标题else v2中看到v1,我希望将标签动态设置为v1。
编辑:
我在本文档中看到对占位符的引用(http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html)然而,在“Git URI中的占位符”部分下,我不确定如何从传入请求中动态替换值
spring-cloud d-config-server提供了多个REST API,允许直接查询属性文件:
$ hostname:port/{label}/{name}-{profiles}.properties]
您可以动态使用您选择的任何标签,只要它与git上的现有标签匹配。
例如,检索应用程序。git中标记为v1的属性:
$ http://${hostname}:${port}/v1/application.properties
配置服务器REST API:
我尝试了一个带有git上属性文件的示例spring cloud server项目。我在文件中为每个标签应用了不同值的git标记v1和v2(我使用了配置文件remote):
标签v1:
http://localhost:8888/v1/application-remote.properties
> testproperty: remotevalue-v1
标签v2:
http://localhost:8888/v2/application-remote.properties
> testproperty: remotevalue-v2
无标签:
http://localhost:8888/application-remote.properties
> testproperty: remotevalue-master
Java代码
我没有尝试,但我想您也可以使用cloud config server的java API(直接注入和调用控制器,而不是执行http请求):
@Autowired
EnvironmentController environmentController;
...
Environment labelled = environmentController.labelled("application", "remote", "v1");
Map<?, ?> keyValues = labelled.getPropertySources().get(0).getSource();
我正在使用Spring Cloud Config服务器,能够检测来自git存储库的更改并将其传递给配置客户机。 有两种方法,我已经实现了: null 所以两者都工作得很好,那么使用Spring Cloud Bus有什么好处吗?或者在生产环境中,不使用Spring Cloud Bus会有什么问题吗?因为将需要额外的工作来设置RabbitMQ集群(HA)作为生产中的Spring云总线。 谢谢,大卫
我使用文件系统后端(spring.profiles.active=本机)加载配置文件。 我想要实现的是每个应用程序都有单独的文件夹,其中存储了所有适当组件的配置,例如 /configs/TestApp1/*. yml, /configs/TestApp2/*. yml 文档告诉我们,这可以使用搜索位置属性中的占位符{应用程序}来完成(根据Spring Cloud Config Server留档ht
我正在尝试创建SpringCloudConfigServer,以便使用SSHURI连接到git存储库(bitbucket)。我正在关注Spring云配置 我使用ssh-keygen实用工具生成了密钥对,并粘贴了。发布文件内容在我的bitbucket帐户的ssh部分,但当我运行作为spring启动应用程序的服务器时,我得到无效的privateKey异常。 我也使用了这个堆栈溢出帖子中提供的建议,但是
我正在使用Spring Cloud配置服务器,我需要为每个阶段的产品测试和开发创建一个配置文件,我已经为默认配置文件创建了4个yml文件application.yml,为每个配置文件创建了应用程序-{配置文件},所以我的问题是如何通过环境变量加载特定的配置,并在每个配置文件配置和端口上运行配置服务器,我已经创建了一个bootstrap.yml但我不能解决这个问题。如果有人能指导我完成这些步骤来满足
将配置服务器用户名和密码存储为环境变量(在客户端和服务器中)还是使用密钥库更好?密钥库密码无论如何都存储为环境变量,那么为什么实际使用密钥库呢?还是有更好的方法在SpringCloudConfig服务器中实现身份验证?
我正在设置一个Spring启动云配置服务器,它使用VAULT来存储秘密。 保管库身份验证机制设置为AWS_IAM。我的类路径中也有aws-java-sdk。aws cli也被配置。 当我向配置服务器发出请求时,我能够从VAULT中获取机密,但第一次请求除外 对配置服务器的第一个请求失败,因为它试图安排任务在到期后续订vault令牌(来自vault响应) 应用程序中的配置。性质 错误日志是