@loopback/health组件实际检测什么?如何判断LoopBack4服务运行状态?
@loopback/health 组件服务状态判定规则说明
@loopback/health 是对云原生健康检查库@cloudnative/health的LoopBack 4适配封装,整体状态判定遵循「全部检查项通过则整体正常,任意一项失败则整体异常」的聚合逻辑,核心分为两类独立的检查维度:
1. 存活状态(Liveness)判定规则
- 默认检查逻辑:仅验证LoopBack 4服务进程正常运行、HTTP服务端口可正常响应请求,默认无额外依赖检查,只要服务完成启动没崩溃,存活状态就为
UP - 自定义规则叠加:所有你注册的
LiveCheck类型自定义检查项全部执行成功,整体存活状态才为UP,任意一项返回失败,整体状态即为DOWN
2. 就绪状态(Readiness)判定规则
- 默认检查逻辑:除了满足存活状态的要求外,会自动检查所有已注册、未关闭健康检查的DataSource(数据库、Redis、消息队列等外部依赖)的连接状态,所有依赖连接正常才返回
UP,任意一个依赖连接异常则返回DOWN - 自定义规则叠加:所有你注册的
ReadyCheck类型自定义检查项全部执行成功,整体就绪状态才为UP,任意一项返回失败,整体状态即为DOWN
3. 常见调整方式
如果某个DataSource是非核心依赖,不需要纳入健康检查判定,可以在DataSource的配置中添加healthCheck: false关闭检查,示例配置如下:
@lifeCycleObserver('datasource') export class CustomDataSource extends juggler.DataSource { static dataSourceName = 'custom'; static readonly defaultConfig = { name: 'custom', connector: 'postgresql', host: 'localhost', port: 5432, // 其他连接配置 healthCheck: false // 关闭该数据源的就绪检查 }; }
内容的提问来源于stack exchange,提问作者pipou
相关产品推荐
相关产品推荐

