Junior — Middle
Kunt u het principe van de Least Connection load balancing-algoritme uitleggen?
sobes.tech AI
Antwoord van AI
Het Least Connection load balancing-algoritme verdeelt inkomende verzoeken naar servers door degene te kiezen die op dat moment het minste aantal actieve verbindingen heeft.
Werking:
- De load balancer houdt het aantal actieve verbindingen op elke server bij.
- Bij een nieuw verzoek wordt de server met het minste aantal actieve verbindingen gekozen.
- Het verzoek wordt naar deze server gestuurd, en de teller voor actieve verbindingen wordt verhoogd.
- Na het voltooien van het verzoek wordt de teller verlaagd.
Dit zorgt voor een gelijkmatige verdeling van de belasting, vooral wanneer de verwerkingstijden van verzoeken variëren, en voorkomt overbelasting van individuele servers.
Voorbeeld in Go (vereenvoudigd):
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("Geselecteerde server: %s met %d actieve verbindingen\n", server.Address, server.ActiveConnections)
}