RousselTMLEARNING

Artículo · HAProxy: del descubrimiento a la experiencia

Algoritmos: Round Robin, Leastconn y Hash

Este artículo está disponible en francés.

2. Les Algorithmes de répartition #

Comment le répartiteur choisit-il le serveur de destination ?

Round Robin (Tourniquet) #

C'est l'algorithme le plus simple : les requêtes sont envoyées aux serveurs de manière séquentielle. Il est idéal quand les serveurs ont des capacités identiques.

Info : C'est l'algorithme par défaut jusqu'à la version 3.2 de HAProxy.
  • Points positifs : Simplicité extrême, aucun overhead, équité parfaite sur des serveurs identiques.
  • Points négatifs : Inefficace si les serveurs ont des puissances différentes ou si certaines requêtes sont plus lourdes que d'autres.

Exemple de configuration HAProxy :

backend app_servers
    balance roundrobin
    server s1 192.168.1.10:80 check
    server s2 192.168.1.11:80 check
Schéma Round Robin

Weighted Round Robin #

Chaque serveur possède un poids proportionnel à sa capacité de traitement. Un serveur plus puissant traitera une proportion plus importante de requêtes.

  • Points positifs : Adapté aux parcs serveurs hétérogènes, comportement prévisible.
  • Points négatifs : Nécessite une configuration manuelle des poids et ne s'adapte pas à la charge réelle instantanée.

Exemple de configuration HAProxy :

backend app_servers
    balance roundrobin
    server s1 192.168.1.10:80 check weight 100
    server s2 192.168.1.11:80 check weight 200
Schéma Weighted Round Robin

Least Connections (Moins de connexions) #

Cet algorithme envoie la nouvelle requête au serveur qui a le moins de connexions actives. Très efficace pour les sessions à durées variables.

  • Points positifs : Équilibre dynamique efficace, idéal pour les connexions persistantes (Bases de données, WebSockets).
  • Points négatifs : Overhead léger pour le suivi des connexions, peut être trompeur si les requêtes n'ont pas la même complexité.

Exemple de configuration HAProxy :

backend app_servers
    balance leastconn
    server s1 192.168.1.10:80 check
    server s2 192.168.1.11:80 check
Schéma Least Connections

Weighted Least Connections #

Combine l'algorithme des moins de connexions avec un système de poids pour favoriser les serveurs les plus robustes ayant peu de charge active.

  • Points positifs : Le plus précis pour des infrastructures mixtes avec des sessions longues.
  • Points négatifs : Plus gourmand en ressources de calcul pour l'équilibreur (overhead).

Exemple de configuration HAProxy :

backend app_servers
    balance wlc
    server s1 192.168.1.10:80 check weight 100
    server s2 192.168.1.11:80 check weight 200
Schéma Weighted Least Connections

Least Response Time #

Dirige les requêtes vers le serveur ayant le temps de réponse le plus court et le moins de connexions actives. Idéal pour une réactivité maximale.

  • Points positifs : Optimise directement l'expérience utilisateur, évite les serveurs ralentis.
  • Points négatifs : Calcul intensif, risque d'instabilité si les temps de réponse varient brutalement.

Exemple de configuration HAProxy :

backend app_servers
    balance rtime # Requiert HAProxy 2.x+
    server s1 192.168.1.10:80 check
    server s2 192.168.1.11:80 check
Schéma Least Response Time

IP Hash / Source Hash #

L'adresse IP de l'utilisateur détermine le serveur de destination, garantissant la persistance de session (stickiness).

  • Points positifs : Persistance sans gestion de cookies côté serveur.
  • Points négatifs : Déséquilibre possible si beaucoup d'utilisateurs partagent la même IP (Proxy/NAT), redistribution totale si le nombre de serveurs change.

Exemple de configuration HAProxy :

backend app_servers
    balance source
    server s1 192.168.1.10:80 check
    server s2 192.168.1.11:80 check
Schéma IP Hash

Random (Aléatoire) #

L'équilibreur de charge choisit un serveur au hasard dans le pool. Simple et statistiquement efficace sur des volumes de trafic massifs.

Info : C'est l'algorithme par défaut depuis la version 3.3 de HAProxy.
  • Points positifs : Overhead nul, très performant pour les clusters à très grande échelle.
  • Points négatifs : Aucune garantie d'équité on de petits volumes de requêtes.

Exemple de configuration HAProxy :

backend app_servers
    balance random
    server s1 192.168.1.10:80 check
    server s2 192.168.1.11:80 check
Schéma Random

3. Outils et Exemples d'applications #

Les solutions logicielles et cloud courantes.

Logiciels spécialisés #

Cloud et Matériel #

  • Cloud Load Balancers : AWS ELB, Azure Load Balancer ou Google Cloud LB sont des services managés très populaires.
  • Hardware : Des équipements physiques comme F5 BIG-IP, bien que moins fréquents aujourd'hui au profit du logiciel et du cloud.

Conclusion #

Un élément critique pour la résilience.

L'évolution vers le Service Mesh #

Le load balancing ne se limite plus à l'entrée du réseau. Dans les architectures microservices (Kubernetes), on utilise des Service Meshes (comme Istio ou Linkerd) pour gérer la répartition de charge directement entre les composants internes de l'application.

📄 Le Load Balancing : Principes, Algorithmes et Cas d'usage →

Mi seguimiento

  • ⏱ Duración estimada : ≈ 9 min

Inicia sesión para seguir tu progreso y tomar notas. Iniciar sesión

💬 Hacer una pregunta

Artículos recomendados

Maîtriser les ACLs dans HAProxy

Guide complet sur les ACLs HAProxy : apprenez à configurer le routage intelligent, le contrôle d'...

Nouveautés HAProxy : OpenTelemetry, JWT Natif, et Optimisations de Performance

Explorez les dernières innovations de HAProxy : prise en charge native d'OpenTelemetry pour l'obs...

L'écosystème HAProxy : Open Source, Enterprise, HAProxy Fusion, Edge et HAProxy One

Comprendre les différences, avantages et interconnexions entre HAProxy OSS, Enterprise, Fusion, E...

Élasticité vs Scalabilité : Les clés de la performance

Comprenez comment le cloud s'adapte automatiquement à la charge de vos utilisateurs.

Gestion des certificats SSL/TLS avec Let's Encrypt et ACME

Apprenez à automatiser la génération et le renouvellement de vos certificats SSL/TLS avec Let's E...

Protocole ACME : serveur ACME, challenges http-01 et dns-01, automatisation TLS

Comprendre le protocole ACME : rôle du serveur ACME (Let's Encrypt, ZeroSSL, step-ca), challenges...

Persistance de session (Stickiness)

Comprendre comment garantir qu'un utilisateur reste sur le même serveur backend durant toute sa s...

HAProxy et SSL : terminaison TLS, SSL passthrough et sécurisation

HAProxy et SSL/TLS : terminaison SSL, SSL passthrough en mode TCP avec routage SNI, ré-chiffremen...

HAProxy : Ajout et suppression dynamique de backends

Découvrez comment utiliser la Runtime API de HAProxy pour créer, configurer et supprimer des back...

Apoyar

♥ APOYAR

Apoya RousselTM Learning

Los cursos, artículos, prácticas y certificados siguen siendo gratuitos y sin publicidad intrusiva. Una contribución libre, por el importe que elijas, financia el alojamiento, los entornos de prácticas y nuevos contenidos.

Contribuir con PayPal Importe libre · tarjeta o cuenta PayPalMás información
QR code PayPal
O escanea este código QR con tu teléfono

¡Gracias, cada contribución cuenta!