Quais métodos podem ser usados para determinar qual microserviço parou ou não responde?
sobes.tech IA
Resposta da IA
Para determinar qual dos microserviços parou ou não responde, utilizam-se várias abordagens:
-
Health Checks (Verificações de saúde) — os microserviços fornecem endpoints HTTP especiais, por exemplo
/healthou/status, que retornam o estado do serviço. A monitorização consulta periodicamente esses endpoints. -
Heartbeat (Sinal de vida) — os serviços enviam sinais periódicos (heartbeat) ao sistema de monitorização ou ao broker de mensagens. A ausência de sinal durante um tempo determinado indica que o serviço não responde.
-
Monitorização e alertas — usando sistemas de monitorização (Prometheus, Grafana, Zabbix), rastreiam métricas e a disponibilidade dos serviços. Se um serviço parar de responder, é gerada uma alerta.
-
Service Discovery com verificação de disponibilidade — em sistemas com descoberta dinâmica de serviços (Consul, Eureka), há mecanismos integrados para verificar a saúde dos serviços.
-
Logs e rastreio — análise de logs e rastreio distribuído ajudam a identificar falhas.
Exemplo de health check simples em Go:
func healthHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Write([]byte("OK"))
}
http.HandleFunc("/health", healthHandler)
http.ListenAndServe(":8080", nil)
A monitorização consultará /health e considerará o serviço vivo se a resposta for 200 OK.