主题
优雅重启与关闭
在生产环境中,优雅重启(graceful restart) 和 优雅关闭(graceful shutdown) 是保障服务连续性的关键操作。
Pingora 支持平滑地处理这些操作,以避免正在进行的请求被中断。
优雅重启(Graceful Restart)
当你更新了配置文件或二进制程序时,可以通过 HUP 信号 触发 Pingora 的优雅重启:
bash
kill -HUP $(cat /var/run/pingora.pid)
该命令的行为包括:
- Pingora 接收到信号后,会启动一个新的工作进程;
- 新进程接管新连接;
- 旧进程继续处理正在进行的请求;
- 当旧进程完成所有请求后自动退出。
这种机制确保了在部署更新时不会导致连接中断或丢失。
优雅关闭(Graceful Shutdown)
如果需要下线或停止服务,也可以通过 TERM 信号 进行优雅关闭:
bash
kill -TERM $(cat /var/run/pingora.pid)
Pingora 收到该信号后会:
- 停止接受新的连接;
- 等待现有连接完成;
- 在所有请求完成后安全退出。
这种方式适用于系统维护、版本切换或手动关闭服务场景。
超时关闭机制
在部分情况下(例如连接长时间未结束),可以设置超时时间,Pingora 会在超时后强制退出。 该参数通常在配置文件中设置,例如:
yaml
shutdown_timeout: 30s
表示等待最多 30 秒后强制终止进程。
示例:安全部署脚本
你可以编写一个简单的部署脚本来实现自动优雅重启:
bash
#!/bin/bash
echo "Reloading Pingora gracefully..."
kill -HUP $(cat /var/run/pingora.pid)
sleep 5
systemctl status pingora
通过优雅重启与关闭机制,Pingora 能够在不中断服务的前提下完成配置更新与维护操作,大大提升了系统的稳定性与可用性。