Sobes.tech
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.