Spring Cloud Config Server - MultipleJGitEnvironmentRepository:无法为主远程获取远程

Posted

技术标签:

【中文标题】Spring Cloud Config Server - MultipleJGitEnvironmentRepository:无法为主远程获取远程【英文标题】:Spring Cloud Config Server - MultipleJGitEnvironmentRepository : Could not fetch remote for master remote 【发布时间】:2020-11-21 06:51:26 【问题描述】:

我正在尝试设置一个 spring 云配置服务器,它使用 SSH 密钥从 git repo 获取配置。它与 springBootVersion 2.1.0.RELEASE 和 springCloudVersion Greenwich.M3 一起运行。

当使用带有用户名和密码的 https bitbucket URI 以及以下配置时,配置服务可以正常工作:

  security.user:
    name: xxxxx
    password: xxxxx
  cloud.config.server:
    git:
      uri: https://bitbucket.org/abc/configs.git
      username: uname
      password: pass

但我们必须迁移以使用 ssh 密钥而不是用户名和密码,配置如下:

  security.user:
    name: xxxxx
    password: xxxxx
  cloud.config.server:
    git:
      uri: git@bitbucket.org:abc/configs.git

id_rsa 私钥文件与配置文件位于 .ssh 文件夹中:

Host bitbucket.org
    StrictHostKeyChecking no
    IdentityFile /home/user/.ssh/id_rsa

初始的 git clone 工作正常,当我点击 http://xxxx:xxxx@localhost:8899/app/dev 时,我们能够毫无问题地获取配置。

但在那之后,日志中有很多无法从远程获取的 WARN。在初始克隆之后,还会正确获取对配置的进一步更新。但不知道为什么日志中有这么多 WARN,这让我很担心。

2020-07-31 11:38:51.636 WARN 1 --- [io-48899-exec-7] .cseMultipleJGitEnvironmentRepository:无法获取远程主远程:git@bitbucket.org:abc/configs.git

正如我之前提到的,这仅在我们使用 SSH 密钥进行克隆时才会发生。同一个项目适用于 https 克隆。有什么我遗漏的吗?

【问题讨论】:

【参考方案1】:

如果以后有人遇到这个问题,我们可以通过在 config-server 中设置 refreshRate 来解决这个问题。

您可以控制配置服务器的频率 通过使用从 Git 后端获取更新的配置数据 spring.cloud.config.server.git.refreshRate。该物业的价值 以秒为单位指定。默认值为 0,表示配置 服务器每次都会从 Git 存储库中获取更新的配置 它被请求。

默认设置为 0。由于它已注册到 consul,其他服务的 consul 健康检查端点以每秒太多的请求压倒了配置服务器,导致配置服务器从 bitbucket 中提取太多次.一旦 refreshRate 设置为 5 秒,那么配置服务器开始仅每 5 秒拉一次配置,现在它是稳定的。 一周过去了,配置服务按预期工作,SSH 密钥没有任何问题。

【讨论】:

以上是关于Spring Cloud Config Server - MultipleJGitEnvironmentRepository:无法为主远程获取远程的主要内容,如果未能解决你的问题,请参考以下文章

spring-cloud-starter-eureka-server 和 spring-cloud-starter-netflix-eureka-server的区别

spring-cloud-config:spring-cloud-config Maven配置错误

spring-cloud-config-server

无法通过 spring.cloud.config.enabled:false 禁用 Spring Cloud Config

0701-spring cloud config-简介Config Server开发Config Client开发

问题 spring-cloud-config 和 spring-cloud-bus