内容提要
Vercel 守护进程现支持配置 HTTP 存活检查:在守护进程中设置轻量 HTTP 端点报告健康状态,不健康时返回错误状态码;在 vercel.json 中通过 livenessProbe 指定该端点,Vercel 会定期请求,检查失败时自动重启容器,从而发现仍在运行但已不健康的守护进程。
延伸解读
存活检查解决“假活”问题
守护进程可能仍在运行,但内部工作线程已失效,仅靠进程存活状态无法发现。HTTP 存活检查通过定期请求轻量端点,让守护进程主动报告健康状态,从而识别这种“假活”情况。文章示例中,当工作线程连接出错时,端点返回 500,触发检查失败。
端点设计要轻量且快速响应
文章强调健康端点应保持轻量,以便快速响应。示例仅根据一个布尔变量返回 200 或 500,不执行复杂逻辑。这样可避免检查本身成为负担或误判,确保 Vercel 定期请求时能及时获得明确状态。
配置集中在 vercel.json
启用存活检查只需在守护进程配置中添加 livenessProbe 字段,指定 HTTP 端口和路径。Vercel 会按配置定期请求该端点,检查失败时自动重启容器。文章提到默认值和可选调优字段可查阅文档,但未展开具体参数。
Q&A
Vercel 守护进程的存活检查是什么?
Vercel 守护进程现在支持配置 HTTP 存活检查。你需要在守护进程中设置一个轻量级的 HTTP 端点来报告健康状态,当守护进程不健康时该端点返回错误状态码。然后在 vercel.json 中通过 livenessProbe 指定该端点,Vercel 会定期请求该端点,如果检查失败,会自动重启守护进程的容器。
如何为守护进程配置 HTTP 存活检查?
首先,在守护进程中创建一个 HTTP 端点,该端点应保持轻量级以便快速响应,并在守护进程不健康时返回错误状态码(如 500)。然后,在 vercel.json 的守护进程配置中添加 livenessProbe 字段,指定 httpGet 的端口和路径,例如:"livenessProbe": { "httpGet": { "port": 1234, "path": "/health" } }。
存活检查端点应该怎么实现?
存活检查端点应该是一个轻量级的 HTTP 服务器,能够快速响应。它需要根据守护进程的健康状态返回相应的状态码:健康时返回 200,不健康时返回 500 或其他错误状态码。例如,你可以使用 Node.js 的 http 模块创建一个简单的服务器,根据一个布尔变量(如 alive)来设置状态码。
存活检查失败后会发生什么?
当存活检查失败时,Vercel 会自动重启守护进程的容器。这有助于发现那些仍在运行但已不健康的守护进程,并恢复其正常状态。
livenessProbe 在 vercel.json 中如何配置?
在 vercel.json 的 daemons 配置中,为特定的守护进程添加 livenessProbe 对象,其中包含 httpGet 字段,指定端口和路径。例如:"livenessProbe": { "httpGet": { "port": 1234, "path": "/health" } }。这样 Vercel 就会定期请求该端点进行健康检查。
存活检查有哪些可调整的参数?
文章提到可以查阅守护进程文档以了解存活检查的默认值和可选调优字段,但未具体列出参数。建议参考官方文档获取详细信息。