spring cloud health - 如何实现规范的自定义健康检查指标
引
Spring Boot Actuator 有几个预定义的健康指标比如 DataSourceHealthIndicator, DiskSpaceHealthIndicator, MongoHealthIndicator, RedisHealthIndicator, CassandraHealthIndicator等。它使用这些健康指标作为健康检查的一部分。
本文对比较常用数据源健康指标 DataSourceHealth 相关的源码进行研究解读,以此作为自定义 HealthIndicator 的编程基础。已实现规范的HealthIndicator编程模式。
DataSourceHealthIndicator 源码核心部分
根据UML图可知:
-
实现 InitializingBean 接口 并实现 afterPropertiesSet() 方法
如果 dataSource 为null 则抛出 IllegalStateException 异常 -
继承 AbstractHealthIndicator 抽象类 并实现doHealthCheck() 方法
如果 dataSource 为null 则 标记 up 并显示 database unknow. 否则执行 doDataSourceHealthCheck()
DataSourceHealthIndicatorAutoConfiguration 源码核心部分
注解
1 |
|
以此可以看出,Actuator 的 healthy 是依赖于 config 配置的实例化机制,通过bean加载所需的资源进行验证。
所以对于自定义的检测指标可按照这种方式进行编程。