返回 导航

SpringBoot / Cloud

hangge.com

分布式配置中心Spring Cloud Config使用详解8(健康检测)

作者:hangge | 2020-08-18 08:10

八、健康检测

1,问题描述

(1)如果我们使用占位符来配置 URI 的时候,比如下面配置:
spring.cloud.config.server.git.uri=https://gitee.com/hangge/{application}

(2)启动配置中心 Config-Server 可能会在控制台出现类似如下的告警信息:

2,问题原因

(1)由于 Spring Cloud Config 默认已经添加 spring-boot-starter-actuator 依赖,而该告警正是由于 actuator 模块的 /health 端点实现了对应的健康检测器 ConfigServerHealthIndicator。在该检测器中,默认构建了一个 applicaiton app 的仓库。
  • 因此根据上面的配置规则,该检测器会不断地检查 https://gitee.com/hangge/app 仓库是否可以连通。

(2)我们可以访问配置中心的 /health 端点来查看它的健康状态,可以发现由于无法连通 app 仓库,使得配置中心的可用状态是 DOWN
注意:虽然我们依然可以通过 URI 的方式访问该配置中心,但是当将配置中心服务化使用的时候,该状态将影响它的服务可用性判断。

3,解决办法

(1)要解决这个问题,一种方式就是直接在 Git 仓库中创建一个名为 app 的配置库,让健康检测器能够访问到它。

(2)另外我们也可以配置一个实际存在的仓库来进行连通检测,比如下面配置,它实现了通过链接 hangge-client 仓库来进行健康检测:
健康检测的配置中包含了与定位仓库地址时类似的三个元素:
  • name:应用名
  • label:分支名
  • profiles:环境名
spring.cloud.config.server.git.uri=https://gitee.com/hangge/{application}
spring.cloud.config.server.git.username=
spring.cloud.config.server.git.password=
spring.cloud.config.server.health.repositories.check.name=hangge-client
spring.cloud.config.server.health.repositories.check.label=master
spring.cloud.config.server.health.repositories.check.profiles=default

(3)当然如果我们不想要使用该健康检测器,也可以通过如下参数配置来关闭它:
spring.cloud.config.server.health.enabled=false
评论

全部评论(0)

回到顶部