Qu'est-ce que l'équilibrage de charge
L'équilibrage de charge (équilibrage de charge) est l'un des facteurs de conception d'architecture de système distribué doit être considéré, qui se réfère généralement à la demande de données /] [uniformément réparti pour exécuter une pluralité d'unités de fonctionnement, que l'équilibrage de la charge critique [uniforme].
système d'équilibrage de charge commune
Common Internet comme une architecture distribuée, divisée La couche client, proxy inverse de couche, couche de site, couche de service, couche de données . On peut le voir, chacun a une pluralité d'appels en amont en aval, ne doit être effectuée, chacun en amont d'un accès en aval de chaque uniforme, peut atteindre « demande de données /] [uniformément allouée à la pluralité d'unité d'exécution d'opération. »
[Niveau client - > couche d'équilibrage de charge proxy inverse]
La couche client [] à [] inverse l'équilibrage de charge de la couche proxy, par « DNS de vote » pour obtenir: DNS-serveur pour résoudre un nom de domaine est configuré avec plusieurs IP, demande de résolution DNS pour accéder à chaque-serveur DNS, vote retourne à ces ip, ip garantie résoudre la probabilité de chacun est la même. L'IP est nginx externe ip réseau, demande nginx faire chaque mission est équilibrée.
Reverse Proxy [couche - > couche d'équilibrage de charge du site]
[Couche de proxy inverse] pour l'équilibrage de charge de couche [site], par « nginx » à réaliser. En modifiant nginx.conf, vous pouvez obtenir une variété de stratégies d'équilibrage de charge:
1) demande de vote : Interrogation du DNS et analogues, les demandes respectives sont successivement acheminées vers-serveur Web
2) itinéraire de connexion minimum : Moins de connexions serveur web qui sont routé vers le serveur web
3) ip hachage : Valeur de hachage IP selon l'accès à la route du serveur web de l'utilisateur, tant que la distribution IP de l'utilisateur est uniforme, la demande est également théoriquement uniforme, la méthode d'égalisation de hachage IP peut être fait, le même utilisateur demande la même chute fixe sur le serveur Web, cette politique appropriée pour les services de l'état, comme session (58 Shen Jian REMARQUE: Vous pouvez le faire, mais fortement recommandé, pas de statut au niveau du site est l'un des principes de base de la conception de l'architecture distribuée, la session a mis le meilleur la couche de stockage de données)
4) ...
[Niveau du site - > couche de service d'équilibrage de charge]
[Couche] pour [site] l'équilibrage de charge de couche de service, par le "Service Connection Pool" pour atteindre.
La connexion en amont de la piscine de connexion en aval établit une pluralité de services, chaque demande sera « aléatoire » pour accéder aux services en aval connectés sélectionnés.
Article précédent « RPC-client les détails de mise en uvre » sont détaillées dans l'équilibrage de charge, le basculement, la description de détail du traitement de délai d'attente, s'il vous plaît cliquer sur le lien à la vue, de ne pas entreprendre ici.
[] Équilibrage de la charge de la couche de données
Dans le cas où un grand nombre de données, étant donné que la couche de données (db, cache) se rapporte au niveau de la segmentation des données, les données de la couche d'équilibrage de charge est plus complexe, il est divisé en « les données égalisées » et « demandes d'équilibrage » .
données équilibrées Il fait référence à: chaque service (db, cache) après le niveau de segmentation, la quantité de données est le même.
demandes d'équilibrage Il fait référence à: chaque service (db, cache) après le niveau de segmentation, le montant de la demande est le même.
niveau commun des méthodes de segmentation de l'industrie sont si peu:
Tout d'abord, selon la plage de niveaux de segmentation
Chaque service de données, les données stockées dans une certaine plage, la figure comme un exemple:
services user0, gamme uid de stockage 1-1kw
services user1, plage uid stockage 1kW-2kW
Les avantages de ce programme sont les suivants:
(1) Des règles simples , La gamme de service ne peut déterminer quelle route les services de stockage correspondants
(2) De meilleures données d'équilibre
(3) Relativement facile à développer , Vous pouvez toujours ajouter un uid Services de données
Ils ne sont pas suffisantes:
(1) La demande ne se charge pas nécessairement l'équilibre En général, les nouveaux utilisateurs enregistrés seront plus actifs que les utilisateurs plus âgés, une large gamme de services demande plus de pression
En second lieu, en fonction du niveau de segmentation ID de hachage
Chaque service de données, les données partie de stockage d'une clé de la valeur de hachage, la figure à titre d'exemple:
services user0, le stockage de données, même-uid
services user1, le stockage de données impair uid
Les avantages de ce programme sont les suivants:
(1) Des règles simples , Juste pour hachage service uid peut être acheminé vers le service de stockage correspondant
(2) De meilleures données d'équilibre
(3) Bonne demande d'uniformité
Il ne suffit pas:
(1) Il est pas facilement extensible L'expansion d'un service de données, le changement de méthode de hachage, il peut exiger la migration des données
résumé
L'équilibrage de charge (équilibrage de charge) est l'un des facteurs de conception d'architecture de système distribué doit être considéré, qui se réfère généralement à la demande de données /] [uniformément réparti pour exécuter une pluralité d'unités de fonctionnement, que l'équilibrage de la charge critique [uniforme].
(1) La couche client [] à [] inverse l'équilibrage de charge de la couche proxy, par « l'interrogation du DNS » pour obtenir
(2) inverser la couche proxy [] à [site] d'équilibrage de charge de la couche, par "nginx" mis en uvre
(3) [couche] à [site] d'équilibrage de charge de couche de service, par le "Service Connection Pool" pour obtenir
(4) [] équilibrage de charge de la couche de données, afin d'étudier les « données égalisées » et « équilibre de demande » deux points, un moyen commun d'avoir « portée en fonction du niveau de segmentation » et « hachage segmentation horizontale. »