Sobes.tech
Junior — Middle

Milliste meetoditega saab määrata, milline mikroteenuse on peatunud või ei vasta?

sobes.tech AI

Vastus AI-lt

Et määrata, milline mikroteenus on peatunud või ei vasta, kasutatakse mitmeid lähenemisviise:

  1. Health Checks (Tervise kontrollid) — mikroteenused pakuvad spetsiaalseid HTTP lõpp-punkte, näiteks /health või /status, mis tagastavad teenuse oleku. Monitooring küsib neid regulaarselt.

  2. Heartbeat (Elusignaal) — teenused saadavad regulaarselt signaale (heartbeat) monitooringusüsteemile või sõnumibrokerile. Signaali puudumine teatud aja jooksul tähendab, et teenus ei vasta.

  3. Monitooring ja häireteadatused — kasutades monitooringusüsteeme (Prometheus, Grafana, Zabbix) jälgitakse metrikat ja teenuste kättesaadavust. Kui teenus lõpetab vastamise, genereeritakse häireteade.

  4. Service Discovery ja kättesaadavuse kontroll — dünaamilise teenuste avastamise süsteemides (Consul, Eureka) on sisseehitatud tervise kontrolli mehhanismid.

  5. Logid ja jälgimine — logide ja jaotatud jälgimise analüüs aitab tuvastada tõrkeid.

Näide lihtsast health checkist Go keeles:

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

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

Monitooring küsib /health ja arvab, et teenus on elus, kui vastus on 200 OK.