Sobes.tech
Junior — Middle

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:

  1. Health Checks (Verificações de saúde) — os microserviços fornecem endpoints HTTP especiais, por exemplo /health ou /status, que retornam o estado do serviço. A monitorização consulta periodicamente esses endpoints.

  2. 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.

  3. 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.

  4. 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.

  5. 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.