Le contenu de cet article est de présenter l'équilibrage de charge, de comprendre ce qu'est l'équilibrage de charge, les avantages de l'équilibrage de charge, etc. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
1. Qu'est-ce que l'équilibrage de charge
L'équilibrage de charge signifie allouer l'exécution à plusieurs unités d'exploitation, telles que les serveurs Web, les serveurs FTP, l'entreprise serveurs d'applications clés et autres serveurs critiques, etc., pour effectuer des tâches de travail ensemble.
Si vous le comprenez littéralement, cela peut expliquer que N serveurs partagent la charge de manière égale, et qu'un certain serveur ne sera pas inactif en raison d'une charge élevée sur un certain serveur. Ensuite, le principe de l'équilibrage de charge est qu'il peut être réalisé par plusieurs serveurs, c'est-à-dire que plus de deux serveurs suffisent.
L'équilibrage de charge repose sur la structure réseau existante. Il fournit une méthode peu coûteuse, efficace et transparente pour étendre la bande passante des périphériques et des serveurs réseau, augmenter le débit, améliorer les capacités de traitement des données du réseau et améliorer la flexibilité du réseau. disponibilité.
2. Avantages de l'équilibrage de charge
Réduisez la pression sur le serveur et répartissez le trafic initialement requis par un serveur sur plusieurs serveurs. Et améliorez la disponibilité du projet Lorsqu'un serveur raccroche, le projet ne sera pas paralysé.
Équilibrage de charge à trois et quatre couches et équilibrage de charge à sept couches
Quatre -layer Load Balancing Balance fonctionne dans la couche de transport du modèle OSI et sa tâche principale est le transfert. Après avoir reçu le trafic du client, il transmet le trafic au serveur d'applications en modifiant les informations d'adresse du paquet de données.
Équilibrage de charge à sept couches fonctionne dans la couche application du modèle OSI Parce qu'il doit analyser le trafic de la couche application, l'équilibrage de charge à sept couches nécessite un équilibrage de charge complet après réception. le trafic du client. L'équilibrage de charge à sept couches établira une connexion complète avec le client et analysera le trafic de demande de la couche application, puis sélectionnera un serveur d'applications en fonction de l'algorithme de planification et établira une autre connexion avec le serveur d'applications pour envoyer la demande. Par conséquent, sept couches. équilibrage de charge Le travail principal consiste à agir en tant qu'agent. L'équilibrage de charge à sept couches est également appelé « commutation de contenu », qui détermine principalement le serveur interne final sélectionné grâce au contenu de la couche d'application vraiment significatif dans le message, couplé à la méthode de sélection de serveur définie par le dispositif d'équilibrage de charge.
Avantages de l'équilibrage de charge à sept couches : Cette méthode peut modifier la demande du client et la réponse du serveur dans n'importe quel sens, ce qui améliore considérablement la flexibilité du système d'application au niveau de la couche réseau. ; haute sécurité.
L'équilibrage de charge à sept couches se concentre principalement sur le protocole HTTP largement utilisé, de sorte que son champ d'application concerne principalement les systèmes basés sur B/S tels que de nombreux sites Web ou plateformes d'informations internes. L'équilibrage de charge de couche 4 correspond à d'autres applications TCP, telles que les ERP et d'autres systèmes développés sur la base de C/S.
4. Les logiciels d'équilibrage de charge
Les logiciels d'équilibrage de charge tels que Nginx, LVS, HaProxy, etc. sont actuellement utilisés Les trois logiciels de répartition de charge les plus répandus.
5. Algorithme d'équilibrage de charge
1. C'est le moyen le plus simple d'envoyer des requêtes à tous les backends à tour de rôle. également la méthode d'allocation par défaut ;
2. Moins de connexions (least_conn) : suivez et backend le nombre actuel de connexions actives indique que le backend a la charge la plus légère. méthode prendra en compte les informations de poids attribuées à chaque amont dans la configuration ;
3. Least Time (least_time) : La requête sera attribuée au backend avec la réponse la plus rapide et le plus petit nombre de connexions actives ;
4, Hachage IP (ip_hash) : calculez la valeur de hachage pour l'adresse IP source de la requête. IPv4 prendra en compte les 3 premiers octets, et IPv6 prendra en compte tous les bits d'adresse, puis l'attribuera au backend via certains. mappage basé sur la valeur de hachage obtenue ;
5. Hachage générique (hash) : calcule la valeur de hachage en fonction des ressources définies par l'utilisateur (telles que l'URL) pour terminer la distribution. Son mot-clé cohérent facultatif prend en charge la fonction de hachage cohérente ;
6. Équilibrage de charge basé sur DNS
Habituellement, un fournisseur de services réseau moderne associera un nom de domaine à plusieurs hôtes lors de l'exécution d'un. Requête DNS, par défaut le serveur DNS utilisera round. Le mode -robin renvoie la liste des adresses IP dans un ordre différent, de sorte que les requêtes des clients sont naturellement distribuées aux différents hôtes. Cependant, cette méthode présente des défauts inhérents : DNS ne vérifie pas l'accessibilité de l'hôte et de l'adresse IP, il n'est donc pas garanti que l'IP attribuée au client soit disponible (Google 404, le résultat de la résolution DNS sera entre le client et plusieurs) ; les serveurs DNS intermédiaires sont constamment mis en cache, donc l'allocation des backends ne sera pas idéale.
Tutoriels vidéo associés recommandés : "Tutoriel Linux"
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!