应用要暴露 liveness / readiness 两个 health endpoint,但 "应该查什么" 一直没统一。说说我们的实践。
- liveness(是否该重启我):只查进程活着、event loop 不卡。不要查依赖。
- readiness(是否该给我流量):查关键依赖(db / redis 连通性)。
- startup(是否启动完成):初始化完成标志,慢启动应用用。
最经典的坑:liveness 里查数据库,数据库抖一下所有 Pod 被重启,雪崩。
app.get("/health", (req, res) => res.json({ ok: true })); // liveness
app.get("/ready", (req, res) => res.json({ db, redis })); // readiness
大家的 health endpoint 都查啥?