【问题标题】:Spring Cloud Config Server fallback for multiple repositories多个存储库的 Spring Cloud Config Server 回退
【发布时间】: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 关闭,我们如何使配置服务器从本地服务。

【问题讨论】:

    标签: java spring-boot bitbucket spring-cloud-config-server


    【解决方案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 快照。参考那个。
    • 是的,它有效。我之前尝试过,但文件夹结构错误。谢谢
    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 2020-06-22
    • 2019-06-30
    • 2020-07-23
    • 2018-03-21
    • 1970-01-01
    • 2019-11-24
    • 2020-04-22
    相关资源
    最近更新 更多