Maison >Opération et maintenance >Nginx >Introduction aux algorithmes courants d'équilibrage de charge
Algorithmes couramment utilisés pour l'équilibrage de charge :
1. Polling (round robin)
Le polling est un équilibrage de charge A. Algorithme relativement basique et simple, il ne nécessite pas la configuration de paramètres supplémentaires. En supposant qu'il y a M serveurs dans le fichier de configuration, l'algorithme parcourt la liste des nœuds de serveur et sélectionne un serveur à chaque tour dans l'ordre des nœuds pour traiter la demande. Lorsque tous les nœuds ont été appelés une fois, l’algorithme parcourra à nouveau en commençant par le premier nœud.
Caractéristiques :
Étant donné que chaque requête de cet algorithme est attribuée à différents serveurs un par un dans l'ordre chronologique, il convient aux situations de cluster avec des performances de serveur similaires, où chaque serveur supporte la même charge . Cependant, pour les clusters avec des performances de serveur différentes, cet algorithme peut facilement causer des problèmes tels qu'une allocation déraisonnable des ressources.
2. Les sondages pondérés
Afin d'éviter les inconvénients causés par les sondages ordinaires, les sondages pondérés ont vu le jour. Dans le cas d'un sondage pondéré, chaque serveur aura son propre poids. De manière générale, une valeur de poids plus élevée signifie de meilleures performances du serveur et il peut gérer plus de requêtes. Dans cet algorithme, les requêtes des clients sont allouées proportionnellement à leur poids. Lorsqu'une requête arrive, le serveur ayant le poids le plus élevé est attribué en premier.
Caractéristiques :
Une interrogation pondérée peut être appliquée à des clusters avec des performances de serveur variables pour rendre l'allocation des ressources plus rationnelle.
L'idée principale est de parcourir chaque nœud de serveur et de calculer le poids du nœud. La règle de calcul est la somme de current_weight et de son effective_weight correspondant. À chaque tour de parcours, le nœud avec le poids le plus élevé est sélectionné comme étant. nœud de serveur optimal. Parmi eux, effective_weight changera en fonction de la situation des ressources et de la situation de réponse lors de l'exécution de l'algorithme.
3. Hachage IP (hachage IP)
ip_hash alloue des serveurs en fonction de la valeur de hachage de l'adresse IP du client qui fait la demande. Cet algorithme peut garantir que toutes les demandes. envoyées à partir de la même adresse IP. Les requêtes sont mappées sur le même serveur, ou différentes adresses IP avec la même valeur de hachage sont mappées sur le même serveur.
Caractéristiques :
Cet algorithme résout dans une certaine mesure le problème de la session non partagée dans un environnement de déploiement de cluster.
Tutoriel recommandé : Tutoriel Nginx
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!