要引入 SOFABoot 的健康检查能力的扩展,只需要引入以下的 Starter 即可:
如果不引入 SOFABoot 的健康检查扩展,用户依然可以直接依赖 HealthIndicator 接口进行原生的 Spring Boot Actuator 的 Liveness Check。
从 SOFABoot 2.3.0 开始,由于健康检查能力依赖于 SpringBoot 1.4.x 里的 组件,而 Actuator
会默认开启很多 ,例如 /dump
, 等等,可能存在安全风险,可以参照官方文档里的安全建议进行设置。
加入健康检查扩展之后,我们可以直接在浏览器中输入 来查看 Readiness Check 的结果。如果要查看 Liveness Check 的结果,可以直接查看 Spring Boot 的健康检查的 URL http://localhost:8080/health。
除了通过 URL 来查看健康检查的结果之外,在 SOFABoot 中,还可以通过查看具体的日志来确定健康检查的结果,日志的目录位于 health-check
目录下,日志的内容大概如下:
2018-04-06 23:29:50,240 INFO main - Readiness check result: success
目前 SOFA 中间件已经通过 SOFABoot 的 Readiness Check 的能力来控制了上游流量的进入,但是一个应用的流量可能并不是全部都是从中间件进入的,比较常见的还有从负载均衡器进入的,为了控制从负载均衡器进入的流量,建议使用者通过 PAAS 来访问 Readiness Check 的结果,根据结果来控制是否要在负载均衡器中上线对应的节点。
注: 在 SOFABoot 3.x 中调整了 endpoint 路径,health/readiness 更改为 actuator/readiness
在 Readiness Check 的各个阶段,SOFABoot 都提供了扩展的能力,应用可以根据自己的需要进行扩展,在 2.x 版本中,可供扩展的点如下:
在 3.x 版本中,可供扩展点如下:
应用在引入 SOFABoot 的健康检查扩展之后,可以在 Spring Boot 的配置文件 中添加相关配置项来定制 Readiness Check 的相关行为。