Junior — Middle
Pouvez-vous expliquer le principe de fonctionnement de l'algorithme de répartition de charge Least Connection?
sobes.tech IA
Réponse de l'IA
L’algorithme d’équilibrage de charge Least Connection répartit les requêtes entrantes vers les serveurs en choisissant celui qui a actuellement le moins de connexions actives.
Principe de fonctionnement :
- Le répartiteur suit le nombre de connexions actives sur chaque serveur.
- Lorsqu’une nouvelle requête arrive, il choisit le serveur avec le moins de connexions actives.
- La requête est envoyée à ce serveur, et le compteur de connexions actives augmente.
- Après traitement de la requête, le compteur diminue.
Cela permet une répartition uniforme de la charge, surtout lorsque les temps de traitement varient, et évite la surcharge de certains serveurs.
Exemple en Go (simplifié) :
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("Serveur sélectionné : %s avec %d connexions actives\n", server.Address, server.ActiveConnections)
}