多个存储库的 Spring Cloud Config Server 回退
Posted
技术标签:
【中文标题】多个存储库的 Spring Cloud Config Server 回退【英文标题】:Spring Cloud Config Server fallback for multiple repositories 【发布时间】:2020-11-13 05:26:08 【问题描述】:我们正在使用由 bitbucket 支持的 Spring Cloud 配置服务器来存储配置文件。我们在配置服务器的 application.yml 中配置了多个存储库。即使 bitbucket 关闭,我们也希望它可用。我们正在寻找一种可以缓存配置存储库的解决方案,如果 bitbucket 出现故障,它仍然可以提供不同存储库的属性。 下面是我的application.yml
spring:
cloud:
config:
server:
git:
uri: git@bitbucket.org:config1.git
ignoreLocalSshSettings: true
privateKey: $PEM
repos:
service1:
uri: git@bitbucket.org:config2.git
ignoreLocalSshSettings: true
privateKey: $PEM
service2:
uri: git@bitbucket.org:config3.git
ignoreLocalSshSettings: true
privateKey: $PEM
我尝试设置spring.cloud.config.server.git.basedir
,但它只克隆基本配置仓库。如果 bitbucket 关闭,我们如何使配置服务器从本地服务。
【问题讨论】:
【参考方案1】:使用basedir
属性是唯一的出路。我们就是这样使用它的:
spring:
cloud:
config:
server:
git:
uri: git@bitbucket.org:config1.git
ignoreLocalSshSettings: true
privateKey: $PEM
basedir: /home/user/config1-repo
repos:
service1:
uri: git@bitbucket.org:config2.git
ignoreLocalSshSettings: true
privateKey: $PEM
basedir: /home/user/config2-repo
service2:
uri: git@bitbucket.org:config3.git
ignoreLocalSshSettings: true
privateKey: $PEM
basedir: /home/user/config3-repo
您如何尝试重现 git 不可用并强制配置服务器从本地服务器路径获取属性的场景。我建议你创建本地路径。并使用 git-bash 克隆本地 repo 目录中的配置 repo。例如,在这种情况下,进入 /home/user/localRepo
并在那里克隆你的配置 git repo。确保正确克隆所有文件和文件夹。
然后尝试重现 git not available 场景并检查您的配置服务器 MS 是否能够从本地目录获取属性。这是后备的唯一出路。
【讨论】:
我们最近遇到了一个有关 bitbucket 的问题,当时它已关闭,我们的应用程序的新副本无法获取配置。我正在为多个存储库寻找 basedir 属性 @SumitKumar :您能否展示一下如何在 application.yaml 文件中配置 basedir 属性。我建议您在 basedir 文件夹中克隆 config-repo。我认为您遇到了新副本而不是现有副本的问题。所以你可以试试我的方法,这将确保即使第一次搜索尝试失败,它也会从你当地的 basedir 中挑选。 我已经添加了你描述的方式,但是在那个目录中我只能看到 config1 repo 文件,我想为多个存储库解决它 @SumitKumar :您需要为您单独使用的每个 repo 提供一个 basedir。并且您需要将存储库克隆到相应的本地 basedirs 。我已经编辑了我的 application.yaml 快照。参考那个。 是的,它有效。我之前尝试过,但文件夹结构错误。谢谢以上是关于多个存储库的 Spring Cloud Config Server 回退的主要内容,如果未能解决你的问题,请参考以下文章
带有本地存储库的 Spring Cloud Config Server 配置
spring-data-cassandra 存储库的多个键空间支持?