Junior — Middle
Můžete vysvětlit princip fungování algoritmu vyvažování zátěže Least Connection?
sobes.tech AI
Odpověď od AI
Algoritmus vyvažování zátěže Least Connection rozděluje příchozí požadavky na servery tím, že vybírá ten server, který má v danou chvíli nejmenší počet aktivních spojení.
Princip fungování:
- Vyvažovač sleduje počet aktuálních aktivních spojení na každém serveru.
- Při příchodu nového požadavku je vybrán server s nejmenším počtem aktivních spojení.
- Požadavek je směrován na tento server a počet aktivních spojení se zvýší.
- Po dokončení požadavku se počet aktivních spojení sníží.
Toto umožňuje rovnoměrné rozložení zátěže, zejména když se doba zpracování požadavků liší, a zabraňuje přetížení jednotlivých serverů.
Příklad v Go (zjednodušený):
package main
import "fmt"
type Server struct {
Address string
ActiveConnections int
}
func leastConnection(servers []Server) *Server {
var selected *Server
for i := range servers {
if selected == nil || servers[i].ActiveConnections < selected.ActiveConnections {
selected = &servers[i]
}
}
return selected
}
func main() {
servers := []Server{
{Address: "server1", ActiveConnections: 5},
{Address: "server2", ActiveConnections: 2},
{Address: "server3", ActiveConnections: 3},
}
server := leastConnection(servers)
fmt.Printf("Vybraný server: %s s %d aktivními spojeními\n", server.Address, server.ActiveConnections)
}