Junior — Middle
Puteți explica principiul de funcționare al algoritmului de echilibrare a încărcării Least Connection?
sobes.tech AI
Răspuns de la AI
Algoritmul de echilibrare a încărcării Least Connection distribuie solicitările de intrare către servere, alegând serverul care are în prezent cel mai mic număr de conexiuni active.
Principiul de funcționare:
- Echilibratorul urmărește numărul de conexiuni active curente de pe fiecare server.
- Când sosește o nouă solicitare, se selectează serverul cu cel mai mic număr de conexiuni active.
- Solicitarea este direcționată către acest server, iar contorul de conexiuni active crește.
- După finalizarea solicitării, contorul scade.
Acest lucru permite o distribuție uniformă a încărcăturii, mai ales când timpii de procesare a solicitărilor variază, și previne supraîncărcarea serverelor individuale.
Exemplu în Go (simplificat):
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("Server ales: %s cu %d conexiuni active\n", server.Address, server.ActiveConnections)
}