Health checks в микросервисе на Go.

Ответ

Liveness - процесс жив (простой endpoint или отсутствие дедлока). Readiness - готов принимать трафик (БД доступна, зависимости отвечают). В Go: /health возвращает 200 или 503; проверки - пинг БД, вызов зависимостей с таймаутом. В K8s liveness/readiness probes указывают на эти endpoint. Отдельный endpoint для зависимостей (dependency health) для отладки.

func (h *Health) Readiness(w http.ResponseWriter, r *http.Request) {
    if err := h.db.PingContext(r.Context()); err != nil {
        w.WriteHeader(503)
        return
    }
    w.WriteHeader(200)
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.