Sobes.tech
Junior — Middle

Kokiais metodais galima nustatyti, kuris mikroservisas sustojo arba neatsako?

sobes.tech AI

Atsakymas iš AI

Norint nustatyti, kuris mikroservisas sustojo arba neatsako, naudojami keli požiūriai:

  1. Health Checks (Sveikatos patikrinimai) — mikroservisai teikia specialius HTTP galinius taškus, pvz., /health arba /status, kurie grąžina paslaugos būseną. Stebėjimas juos periodiškai klausia.

  2. Heartbeat (Gyvybės signalas) — paslaugos periodiškai siunčia signalus (heartbeat) stebėjimo sistemai arba žinučių brokeriui. Signalo nebuvimas tam tikru laiku reiškia, kad paslauga neatsako.

  3. Stebėjimas ir įspėjimai — naudojant stebėjimo sistemas (Prometheus, Grafana, Zabbix) stebimos metrikos ir paslaugų prieinamumas. Jei paslauga nebeatsako, generuojamas įspėjimas.

  4. Service Discovery su prieinamumo patikra — dinamiškai paslaugas atrandančiose sistemose (Consul, Eureka) yra įmontuoti sveikatos patikros mechanizmai.

  5. Logai ir sekimas — logų ir paskirstyto sekimo analizė padeda nustatyti gedimus.

Pavyzdys paprasto health check Go kalba:

func healthHandler(w http.ResponseWriter, r *http.Request) {
    w.WriteHeader(http.StatusOK)
    w.Write([]byte("OK"))
}

http.HandleFunc("/health", healthHandler)
http.ListenAndServe(":8080", nil)

Stebėjimas užduoda /health ir laiko, kad paslauga gyva, jei atsakymas yra 200 OK.