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

  1. Echilibratorul urmărește numărul de conexiuni active curente de pe fiecare server.
  2. Când sosește o nouă solicitare, se selectează serverul cu cel mai mic număr de conexiuni active.
  3. Solicitarea este direcționată către acest server, iar contorul de conexiuni active crește.
  4. 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)
}