Sobes.tech
Junior — Middle

Môžete vysvetliť, čo sa rozumie pod pojmom škálovateľnosť systému?

sobes.tech AI

Odpoveď od AI

Škálovateľnosť systému je schopnosť systému efektívne fungovať pri zvyšovaní záťaže alebo objemu dát. Ukazuje, ako ľahko je možné systém rozšíriť, aby zvládal väčší počet používateľov, požiadaviek alebo dát.

Existujú dva hlavné typy škálovateľnosti:

  • Vertikálna škálovateľnosť (scale-up) — zvýšenie zdrojov jedného servera (napríklad pridanie RAM alebo procesorov).
  • Horizontálna škálovateľnosť (scale-out) — pridanie nových serverov alebo uzlov do systému.

V kontexte Golang je škálovateľnosť často dosiahnutá efektívnym využívaním goroutines, kanálov a distribuovaných systémov.

Príklad jednoduchého HTTP servera, ktorý môže obsluhovať veľa požiadaviek paralelne vďaka goroutines:

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Ahoj, svet!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Taký server môže spracovávať veľa požiadaviek súčasne, čo je súčasťou škálovateľnosti.