Sobes.tech
Junior — Middle

Akými metódami prenosu dát ste používali na komunikáciu medzi službami?

sobes.tech AI

Odpoveď od AI

Pre komunikáciu medzi službami v Go (Golang) som použil niekoľko spôsobov prenosu dát v závislosti od požiadaviek a architektúry:

  1. HTTP/REST API — najrozšírenejší spôsob, keď služby vymieňajú dáta prostredníctvom HTTP požiadaviek s použitím JSON alebo iného formátu.

  2. gRPC — vysoko výkonný protokol vzdialeného volania procedúr, ktorý využíva Protocol Buffers na serializáciu dát. Vhodný pre mikroservisy s prísnymi požiadavkami na rýchlosť a typovanie.

  3. Správy cez brokerov (napríklad RabbitMQ, Kafka) — asynchrónny prenos dát cez fronty správ, čo zvyšuje spoľahlivosť a škálovateľnosť.

  4. Zdieľaný cache alebo databáza — niekedy si služby vymieňajú dáta cez spoločné úložiská, hoci to je menej preferované pre priame komunikácie.

Príklad jednoduchého HTTP klienta v Go:

resp, err := http.Get("http://example.com/api/data")
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(body))

Výber metódy závisí od požiadaviek na rýchlosť, spoľahlivosť, zložitosť a architektúru systému.