优雅退出的HTTP服务器管理器:Terminus

优雅退出的HTTP服务器管理器:Terminus

terminusGraceful shutdown and Kubernetes readiness / liveness checks for any Node.js HTTP applications项目地址:https://gitcode.com/gh_mirrors/te/terminus

Terminus是一个轻量级的Node.js库,它为任何HTTP应用添加了优雅关闭功能和Kubernetes的就绪性、存活性检查。这款工具是Godaddy公司贡献的开源项目,旨在确保在系统关闭或迁移时,你的应用程序可以干净地终止并处理未完成的工作。

安装与使用

通过npm轻松安装Terminus:

npm i @godaddy/terminus --save

然后,在你的HTTP服务器创建后,只需要一行代码就可以启用Terminus的功能:

const { createTerminus } = require('@godaddy/terminus');
createTerminus(server, options);

技术解析

Terminus的核心在于监听特定的信号(如SIGTERM),并在接收到这些信号时启动清理过程。这个过程包括你的自定义清理逻辑,如关闭数据库连接等。此外,Terminus还提供了健康检查接口,以允许Kubernetes或其他服务监测应用程序的状态。

健康检查函数可配置为接收一个状态对象,并返回一个表示服务健康的Promise。你可以设置不同的响应码和响应信息,以告知调用者健康检查的结果。

应用场景

Terminus在微服务架构中非常有用,尤其是在Kubernetes环境中。它可以确保当Pod被删除或更新时,你的应用有足够的时间进行必要的清理工作,并向Kubernetes报告其“就绪”或“不就绪”的状态,避免了数据丢失和用户体验中断的问题。此外,对于负载均衡器和 ingress 控制器来说,Terminus可以帮助它们准确地知道何时停止将流量路由到正在关闭的服务。

项目特点

  1. 兼容性广 - 支持标准的HTTP服务器,如Node.js内置的http模块,以及流行的Express和Koa框架。
  2. 灵活的健康检查 - 允许自定义健康检查路径和返回值,支持错误堆栈追踪,便于调试。
  3. 定制化选项 - 提供多种配置项,如超时时间、信号类型、清理函数等,满足各种复杂的场景需求。
  4. 优雅关闭 - 在进程终止前,允许执行异步清理任务,确保资源的完整释放。
  5. 适用于集群环境 - 与Node.js的cluster模块兼容,可在每个worker上单独使用Terminus。

如果你正在寻找一种方式来增强你的HTTP服务在分布式环境中的稳定性和可靠性,Terminus绝对是值得尝试的选择。立即加入众多开发者行列,让Terminus帮你打造更健壮的应用程序!

terminusGraceful shutdown and Kubernetes readiness / liveness checks for any Node.js HTTP applications项目地址:https://gitcode.com/gh_mirrors/te/terminus

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羿妍玫Ivan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值