分布式配置中心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)