云卫生
一个核心库,为Node.js应用程序提供应用程序生命周期处理和活性检查.
云卫生被使用 云健康连接 以提供用于Express.js、Loopback和其他框架的连接中软件,其中提供:
- 启动检查
- 准备状态检查
- 活性检查
- 关闭处理
与库伯内特斯和"云"创始人合用.
利用云卫生
Cloud Health允许您注册在申请的三个阶段执行的承诺,并允许您拨打 getLivenessStatus(), (中文(简体) ), getReadinessStatus(),或组合 getStatus() 以返回确定申请是否有效的承诺 STARTING, (中文(简体) ), UP, (中文(简体) ), DOWN, (中文(简体) ), STOPPING 或者说 STOPPED。 。 。 .
-
启动“ 启动” 时
承诺,作为StartupCheck并使用registerStartupCheck在启动时执行,并可用于执行任何在应用程序准备好之前必须完成的代码。 如果启动承诺还在履行中,请getLivenessStatus(), (中文(简体) ),getReadinessStatus(),以及getStatus()ưμ㼯aSTARTING一旦承诺完成,DOWN如果出现任何失败,或者“活性”和/或“准备”承诺随后得到履行. -
在"生活"的运行时间
承诺,作为LivenessCheck并使用registerLivenessCheck调用时执行getLiveness()财务报告和审定财务报表getStatus()。这些可以用来确保应用程序仍在正确运行。 如果没有承诺,或成功,UP报告。 如果有任何失败,DOWN报告. -
准备时间
承诺,作为ReadinessCheck并使用registerReadinessCheck调用时执行getReadinessStatus()财务报告和审定财务报表getStatus()。这些可以用来确保应用程序仍在正确运行。 如果没有承诺,或成功,UP报告。 如果有任何失败,DOWN报告. -
在一个
SIGTERM关闭信号
承诺,作为ShutdownCheck并使用registerShutdownCheck当进程收到时执行SIGTERM能够清理应用程序使用的任何资源。 如果关闭承诺还在兑现,呼吁getReadinessStatus(), (中文(简体) ),getLivenessStatus()财务报告和审定财务报表getStatus()返回时STOPPING一旦承诺完成,STOPPED报告.
准备与活性
现场检查和准备状态检查以同样方式执行,但独立执行(根据对 getLivenessStatus() 或者说 getReadinessStatus())或一起(根据对 getStatus()) (中文(简体) ).
活性与准备状态的区别意在达到目的: 准备状态应用来表示申请是否"准备"接受请求,活性应用来表示申请是否"活性"(vs. 在一个应该重启的状态下).
使用 Cloud 健康与节点.js
- 安装 :
npm install @cloudnative/health
- 设置健康检查器:
const health = require('@cloudnative/health');
let healthcheck = new health.HealthChecker();
- 注册启动检查承诺 :
const startPromise = () => new Promise(function (resolve, _reject) {
setTimeout(function () {
console.log('STARTED!');
resolve();
}, 10);
});
let startCheck = new health.StartupCheck("startCheck", startPromise);
healthcheck.registerStartupCheck(startCheck);
请注意: registerStartupCheck() 并返回一个可以用来等待承诺实现的许诺.
- 注册活性检查承诺 :
const livePromise = () => new Promise(function (resolve, _reject) {
setTimeout(function () {
console.log('ALIVE!');
resolve();
}, 10);
});
let liveCheck = new health.LivenessCheck("liveCheck", livePromise);
healthcheck.registerLivenessCheck(liveCheck);
- 注册关闭检查承诺 :
const shutdownPromise = () => new Promise(function (resolve, _reject) {
setTimeout(function () {
console.log('DONE!');
resolve();
}, 10);
});
let shutdownCheck = new health.ShutdownCheck("shutdownCheck", shutdownPromise);
healthcheck.registerShutdownCheck(shutdownCheck);
- 检查申请状态 :
healthcheck.getStatus()
.then((result) => console.log('STATUS: ' + JSON.stringify(result)));
请注意: 云健康连接 提供了用于Express.js,Looperback和其他框架的Connect Middleware,将结果暴露为Cloud Foundry和Kubernetes基于云的我们的终点.
使用有打字符的云健康
云健康模块在TypeScript中被创建,因此提供出框TypeScript支持.
模块长期支助政策
本单元采用 模块长期支持(LTS) 政策,其终止日期如下:
| 模块版本 | 发布日期 | 最低额 | 电话 | 状态 |
|---|---|---|---|---|
| 2.x.x (中文(简体) ) | 2019年5月 (中文(简体) ) | 2021年4月 (中文(简体) ) | 当前 | |
| 1.x.x (中文(简体) ) | 2018年7月 (中文(简体) ) | 2019年12月号 | 长期 |