优雅关闭
优雅关闭(Graceful Shutdown)
是当部署应用程序的新版本替换以前的版本时。进程管理器将首先向应用程序发送一个 SIGTERM 信号,以通知该进程将被杀死。 一旦应用程序收到这个信号,它应该:
- 停止接受新请求。
- 完成所有正在进行的请求。
- 清理它应用的资源,包括数据库连接和文件锁。
- 退出。
技巧
- 设置超时时间进行强制终止以避免过长的终止等待时间。
案例
- Go 语言在 1.8 版本之后的增加了 Shutdown()方法以支持优雅关闭。
- Kubernetes 的 delete 操作默认都有 30 秒的优雅关闭时限。并且可以通过设置
--grace-period=<seconds>
参数来调整关闭时限的长度。
工具 & 平台
(待补充)