RousselTMLEARNING

Article · HAProxy : de la découverte à l'expertise

Algorithmes : Round Robin, Leastconn et Hash

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 →

Mon suivi

  • ⏱ Durée estimée : ≈ 9 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Questions sur cette leçon

Aucune question pour l'instant : soyez le premier à demander de l'aide ou à partager votre configuration.

Poser une question sur cette leçon →

Glossaire de la formation

ACL (Access Control List)

Liste de contrôle d'accès définissant les permissions accordées sur des ressources. Dans HAProxy, les ACL sont des conditions flexibles permettant de ...

Backend

Section de la configuration HAProxy définissant un pool de serveurs cibles vers lesquels le trafic est redirigé. C'est ici que l'on configure l'algori...

Frontend

Section de la configuration HAProxy qui définit comment les requêtes sont reçues du côté client (adresse IP, port, certificats SSL) avant d'être envoy...

GSLB (Global Server Load Balancing)

Technique de répartition de charge à l'échelle mondiale, utilisant généralement le DNS pour diriger les utilisateurs vers le datacenter le plus proche...

HAProxy

Logiciel de load balancing et de proxying haute performance pour TCP et HTTP. HAProxy est le standard de l'industrie pour la gestion de trafic à très ...

Health Check

Mécanisme automatisé permettant au load balancer de tester périodiquement la disponibilité des serveurs afin d'exclure temporairement ceux qui sont en...

Load Balancing

Dispositif qui distribue le trafic applicatif sur un ensemble de serveurs afin d'optimiser l'usage des ressources, de minimiser les temps de réponse e...

SSL Offloading

Processus consistant à déléguer le déchiffrement du trafic HTTPS au load balancer pour libérer de la puissance CPU sur les serveurs d'application.

Stickiness

Mécanisme garantissant qu'un utilisateur est systématiquement redirigé vers le même serveur backend durant toute sa session, indispensable pour les ap...

Slowloris

Type d'attaque par déni de service (DoS) qui consiste à ouvrir de nombreuses connexions HTTP et à les maintenir ouvertes le plus longtemps possible en...

DoS / DDoS

Attaque visant à rendre un service indisponible en submergeant le serveur ou le réseau de trafic. On parle de DDoS (Distributed Denial of Service) lor...

SSL / TLS

Protocoles de sécurisation des échanges sur internet. TLS (Transport Layer Security) est le successeur moderne de SSL (Secure Sockets Layer). Ils perm...

Articles recommandés

HAProxy : Guide détaillé des directives de configuration

Une exploration complète des directives essentielles de HAProxy : de bind à http-check, apprenez ...

HAProxy dans Kubernetes : L'Ingress Controller Haute Performance

Découvrez en profondeur l'intégration de HAProxy dans Kubernetes. Architecture Direct-to-Pod, opt...

HAProxy comme Ingress Controller Kubernetes : Le Guide de Production

Découvrez comment utiliser HAProxy comme Ingress Controller dans Kubernetes. Architecture Direct-...

Bonnes Pratiques HAProxy : Optimisation, Sécurité et Haute Disponibilité

Découvrez les meilleures pratiques pour configurer HAProxy afin d'assurer performance, sécurité e...

Persistance de session (Stickiness)

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

Health Checks et Haute Disponibilité

Comment HAProxy détecte les pannes et gère le basculement automatique vers les serveurs sains.

Visualiser votre infrastructure avec HAProxy Topology Visualizer

Apprenez à utiliser HAProxy Topology Visualizer pour transformer vos fichiers haproxy.cfg complex...

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...

Stratégies de déploiement avec Traefik : blue/green, canary et rolling

Mettre en œuvre les stratégies de déploiement avec Traefik : rolling update par l'orchestrateur, ...

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !