Spring 云配置服务器 - MultipleJGitEnvironmentRepository:无法获取主远程的远程
Spring Cloud Config Server - MultipleJGitEnvironmentRepository : Could not fetch remote for master remote
我正在尝试设置一个 spring 云配置服务器,它使用 SSH 密钥从 git 存储库中获取配置。它是 运行 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 克隆工作正常,当我点击 http://xxxx:xxxx@localhost:8899/app/dev
时,我们能够毫无问题地获取配置。
但在那之后,日志中有很多无法从远程获取的警告。在初始克隆之后,还会正确获取对配置的进一步更新。但不确定为什么日志中有这么多警告,这让我很担心。
2020-07-31 11:38:51.636 WARN 1 --- [io-48899-exec-7] .c.s.e.MultipleJGitEnvironmentRepository : Could not fetch remote for master remote: git@bitbucket.org:abc/configs.git
正如我之前提到的,只有当我们使用 SSH 密钥进行克隆时才会发生这种情况。同一个项目可以很好地使用 https 克隆。我有什么遗漏的吗?
如果将来有人遇到此问题,我们可以通过在 config-server 中设置刷新率来解决此问题。
You can control how often the config server will
fetch updated configuration data from your Git backend by using
spring.cloud.config.server.git.refreshRate. The value of this property
is specified in seconds. By default the value is 0, meaning the config
server will fetch updated configuration from the Git repo every time
it is requested.
默认设置为 0。自从注册到 consul 后,其他服务的 consul healthcheck 端点每秒请求过多 config-server,导致配置服务器从bitbucket 太多次了。一旦将 refreshRate 设置为 5s,config-server 开始每 5 秒拉取配置,现在它是稳定的。
一周过去了,配置服务按预期工作,SSH 密钥没有任何问题。
我正在尝试设置一个 spring 云配置服务器,它使用 SSH 密钥从 git 存储库中获取配置。它是 运行 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 克隆工作正常,当我点击 http://xxxx:xxxx@localhost:8899/app/dev
时,我们能够毫无问题地获取配置。
但在那之后,日志中有很多无法从远程获取的警告。在初始克隆之后,还会正确获取对配置的进一步更新。但不确定为什么日志中有这么多警告,这让我很担心。
2020-07-31 11:38:51.636 WARN 1 --- [io-48899-exec-7] .c.s.e.MultipleJGitEnvironmentRepository : Could not fetch remote for master remote: git@bitbucket.org:abc/configs.git
正如我之前提到的,只有当我们使用 SSH 密钥进行克隆时才会发生这种情况。同一个项目可以很好地使用 https 克隆。我有什么遗漏的吗?
如果将来有人遇到此问题,我们可以通过在 config-server 中设置刷新率来解决此问题。
You can control how often the config server will fetch updated configuration data from your Git backend by using spring.cloud.config.server.git.refreshRate. The value of this property is specified in seconds. By default the value is 0, meaning the config server will fetch updated configuration from the Git repo every time it is requested.
默认设置为 0。自从注册到 consul 后,其他服务的 consul healthcheck 端点每秒请求过多 config-server,导致配置服务器从bitbucket 太多次了。一旦将 refreshRate 设置为 5s,config-server 开始每 5 秒拉取配置,现在它是稳定的。 一周过去了,配置服务按预期工作,SSH 密钥没有任何问题。