Sobes.tech
Junior — Middle

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:

  1. Health Checks (Kontroly zdravia) — mikroservisy poskytujú špeciálne HTTP endpointy, napríklad /health alebo /status, ktoré vracajú stav služby. Monitoring ich periodicky dotazuje.

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

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

  4. Service Discovery s kontrolou dostupnosti — v systémoch s dynamickým objavovaním služieb (Consul, Eureka) sú zabudované mechanizmy kontroly zdravia služieb.

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