Junior — Middle
Můžete vysvětlit, co se rozumí pod pojmem škálovatelnost systému?
sobes.tech AI
Odpověď od AI
Škálovatelnost systému je schopnost systému efektivně fungovat při zvyšování zátěže nebo objemu dat. Ukazuje, jak snadno lze systém rozšířit tak, aby zvládal větší počet uživatelů, požadavků nebo dat.
Existují dva hlavní typy škálovatelnosti:
- Vertikální škálovatelnost (scale-up) — zvýšení zdrojů jednoho serveru (například přidáním RAM nebo procesorů).
- Horizontální škálovatelnost (scale-out) — přidání nových serverů nebo uzlů do systému.
V kontextu Golang je škálovatelnost často dosažena efektivním využíváním gorutin, kanálů a distribuovaných systémů.
Příklad jednoduchého HTTP serveru, který může obsluhovat mnoho požadavků současně díky gorutinám:
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Ahoj, světe!")
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
Takový server může zpracovávat mnoho požadavků najednou, což je součástí škálovatelnosti.