Akými metódami možno určiť, ktorý mikroservis sa zastavil alebo neodpovedá?
sobes.tech AI
Odpoveď od AI
Na určenie, ktorý mikroservis sa zastavil alebo neodpovedá, sa používajú niekoľko prístupov:
-
Health Checks (Kontroly zdravia) — mikroservisy poskytujú špeciálne HTTP endpointy, napríklad
/healthalebo/status, ktoré vracajú stav služby. Monitoring ich periodicky dotazuje. -
Heartbeat (Signál života) — služby pravidelne posielajú signály (heartbeat) do monitorovacieho systému alebo brokeru správ. Nedostatok signálu po určitom čase znamená, že služba neodpovedá.
-
Monitoring a upozornenia — pomocou monitorovacích systémov (Prometheus, Grafana, Zabbix) sledujú metriky a dostupnosť služieb. Ak služba prestane odpovedať, je generované upozornenie.
-
Service Discovery s kontrolou dostupnosti — v systémoch s dynamickým objavovaním služieb (Consul, Eureka) sú zabudované mechanizmy kontroly zdravia služieb.
-
Logy a trasovanie — analýza logov a distribuované trasovanie pomáhajú odhaliť zlyhania.
Príklad jednoduchého health check-u v 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)
Monitoring bude dotazovať /health a považovať službu za živú, ak odpoveď bude 200 OK.