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.