Question

Ceci est quelque chose que je suis toujours demandé. Je comprends que l'échelle horizontale est sur le point d'ajouter plus de machines dans le mélange. Mais je peux penser à deux approches à cet égard. Supposons que j'ai 20 serveurs que je veux utiliser (plus une base de données). Je peux:

  1. Effectuez tous les 20 serveurs fonctionnent comme des serveurs d'applications.
  2. différents serveurs font différentes parties d'une tâche. Par exemple, disposent d'un ensemble de serveurs gérer la demande, puis un autre ensemble pour appliquer la logique métier, puis une autre pour faire l'appel de la base de données.

Numéro 1 semble être plus fréquent et plus facile à comprendre, mais le numéro 2 semble être considéré comme « meilleure pratique » (comme il est la plupart du temps une architecture n-tier). Comment peut-on choisir entre ces deux modèles? Et quels sont les avantages et les inconvénients de chaque approche?

Était-ce utile?

La solution

Cela dépend de la tâche, et quelles seraient vos goulots d'étranglement.

Presque sans exception, vous allez avoir besoin d'au moins deux types de serveur: 1) Application et 2) Base de données. Si vous distribuez les serveurs d'applications, vous devez toujours synchroniser les données entre elles, en faisant l'un de ces serveurs (ou un serveur distinct) est votre serveur de base de données.

Si vous connaissez la base de données ne sera pas frappé avec beaucoup de trafic (par exemple: vous utilisez un site basé sur le chat-live, et non quantité de données stockées de façon permanente ou synchronisé), le choix de faire rien d'autre que des serveurs d'applications pourrait être bien .

Le choix # 2 est mieux, cependant, pour la majorité des sites, surtout si vous ne savez pas à l'avance quels serveurs deviendront les goulots d'étranglement. Si vous ne permettez pas pour chaque type de serveur à l'échelle, alors vous serez coincé avoir à réécrire le code source lors des poussées de croissance inattendues. Ensuite, vous aurez à prendre des décisions difficiles comme « Quelles sont les caractéristiques que nous devrions désactiver pour que le site peut encore fonctionner pendant que nous travaillons sur l'extension? »

Honnêtement, cependant, je ne serais pas passer trop de temps se soucier de l'évolutivité. Une fois que vous atteignez un point où vos charges de serveur deviennent trop élevés, vous serez en mesure de se permettre quelques réécritures source. Que ce soit par des sources nouvellement découvertes de financement, ou par le biais des bénéfices directs en dehors du site. Exemple:. Twitter fait encore grand

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top