Qu'est-ce que la répartition de charge ? Comment les sites tiennent face à des millions de visiteurs
📷 panumas nikhomkhai · Pexels✦ Points clés
- Un répartiteur de charge distribue les requêtes sur plusieurs serveurs pour éviter d'en surcharger un.
- Il améliore performance et fiabilité : si un serveur tombe, les requêtes vont vers les autres.
- Il existe différents algorithmes comme le tourniquet et le moins de connexions.
- C'est une pierre angulaire de tout système qui doit évoluer horizontalement.
La répartition de charge (load balancing) consiste à distribuer les requêtes entrantes des visiteurs sur un groupe de serveurs au lieu de toutes les envoyer à un seul. Imaginez un restaurant bondé avec un hôte qui répartit les clients entre plusieurs serveurs plutôt que de les servir seul — c'est exactement le rôle d'un répartiteur de charge entre les visiteurs et les serveurs.
Pourquoi en a-t-on besoin ? Parce que tout serveur, aussi puissant soit-il, a un nombre maximal de requêtes traitables par seconde. Quand le trafic dépasse cette limite, le site ralentit ou plante. La solution : faire tourner plusieurs serveurs identiques et placer un répartiteur devant eux qui distribue intelligemment la charge, pour que le système supporte bien plus qu'un seul serveur.
🌐 Temps de téléchargement
Durée de téléchargement selon votre débit — instantané.
Le second bénéfice est tout aussi important : la fiabilité. Si un serveur tombe, le répartiteur le remarque et cesse de lui envoyer des requêtes, orientant les visiteurs vers les serveurs sains. Le site continue de fonctionner malgré une panne partielle — c'est le failover.
| Algorithme | Comment il distribue |
|---|---|
| Tourniquet (Round Robin) | À tour de rôle, équitablement |
| Moins de connexions | Vers le serveur le moins occupé |
| Pondéré | Les serveurs plus forts reçoivent plus |
| Par source (IP Hash) | Le même visiteur va au même serveur |
Le choix de l'algorithme dépend de l'application. Le tourniquet est le plus simple, adapté quand serveurs et requêtes se ressemblent. Le moins de connexions convient quand la durée des requêtes varie. Et la répartition par source est utile quand un visiteur doit rester sur le même serveur toute sa session (panier d'achat). Beaucoup de systèmes les combinent.
La répartition de charge rend possible la mise à l'échelle horizontale : au lieu d'acheter un serveur plus gros (mise à l'échelle verticale, plafonnée), on ajoute des serveurs identiques derrière le répartiteur à mesure que la demande croît. C'est le modèle des sites géants servant des millions de visiteurs simultanés sans s'effondrer.
En résumé : la répartition de charge n'est pas un luxe mais une nécessité pour tout service qui grandit. Elle combine deux objectifs : plus de performance en répartissant la charge, et plus de fiabilité par le failover — le secret de la résistance des grands sites.
