Spring cloud配置从AWS S3加载客户端bootstrap.properties

时间:2018-01-28 14:31:07

标签: java spring spring-cloud

目前我已经设置了云配置服务器,客户端应用程序从这一个中心属性获取属性。当更改被推送到GIT时,通过rabbitmq的云配置服务器会将这些配置更改推送到客户端,并且它可以正常工作。

但是,我希望所有客户端应用程序从云中加载具有以下属性的boostrap.properties;

spring.application.name=app-name
spring.cloud.config.uri=http://user:pass@sub.domain.com:8888
spring.cloud.config.username=username
spring.cloud.config.password=password

我的问题源于我有几个租户使用相同的平台,我希望每个租户都有一个不同的配置文件存储在S3或任何其他公共存储库中。此文件可以通过CI / CD推送到不同的租户设置,并包含租户配置API等链接。

有没有办法从分布式文件系统(如HDFS或AWS S3)加载引导程序属性?

1 个答案:

答案 0 :(得分:0)

我写了一篇博客文章,内容涉及使用spring cloud-config和s3作为存储配置的后端。

https://nageshrsalunke.me/blogs/2019/spring-cloud-config-s3-backend/

为什么要使用S3?

以下是不使用git并使用S3进行配置存储的特定原因

  • 不将git / source控制暴露给生产部署环境。
  • 避免在产品环境中复制/克隆或维护git服务器。
  • 使用存储进行存储,使用版本控制进行版本控制(单一职责原则)
  • 部署管道定义何时推送配置/不是您的源代码或代码审查系统

实施

使用S3EnvironmentRepository来实现spring“ org.springframework.cloud.config.server.environment.Environment.EnvironmentRepository”的EnvironmentRepository

我有一个示例实现,该实现按计划从s3的版本文件中更改版本头时按计划获取s3 config https://github.com/nagesh-salunke/spring-cloud-config-s3