Objectifs d'architecture de projet Internet à grande échelle
Projets traditionnels et projets Internet
Projets traditionnels : une entreprise ou un système, un système rh, un système d'enregistrement
Projets Internet : Tmall, Baidu, jd
articles traditionnels | projet internet | |
---|---|---|
Utiliser des groupes | employés de l'entreprise | Tous les internautes |
Concurrence | 1-milliers | million de milliards |
Tolérance du produit | haute tolérance | tolérance presque zéro |
sécurité | haute sécurité | Vulnérable |
Fonction | fonction simple | fonction complexe |
renouveler | mise à jour lente | mise à jour rapide |
D'après le tableau de comparaison, on peut voir que les projets Internet doivent :
Haute simultanéité, réponse rapide, bonne stabilité, bonne expérience utilisateur
Mesurer les métriques de performance du site Web
Temps de réponse : fait référence au temps global nécessaire pour exécuter une requête depuis le début jusqu'à la réception des données de réponse à la fin.
Concurrence : fait référence au nombre de requêtes que le système peut traiter en même temps.
-
Le nombre de connexions simultanées : fait référence au client qui initie une requête au serveur et établit une connexion TCP. Le nombre total de connexions TCP au serveur par seconde
-
Nombre de requêtes : également connu sous le nom de QPS (Query Per Second) fait référence au nombre de requêtes par seconde
-
Utilisateurs simultanés : combien d'utilisateurs par unité de temps
Débit : fait référence au nombre de requêtes que le système peut traiter par unité de temps.
Haute performance : offre une expérience d'accès rapide.
Haute disponibilité : Les services du site Web sont toujours accessibles normalement.
Évolutif : augmenter/diminuer, augmenter/diminuer la puissance de traitement via le matériel.
Haute évolutivité : faible couplage entre systèmes, ajout/suppression facile de nouvelles fonctions/modules par ajout/suppression.
Sécurité : fournissez des stratégies telles que l'accès sécurisé au site Web, le cryptage des données et le stockage sécurisé.
cluster et distribué
Technologies requises pour les projets Internet à grande échelle : cluster et distribué
grappe
De nombreuses "personnes" travaillent ensemble pour faire la même chose. Par exemple, un restaurant doit couper des légumes, préparer des légumes, laver des plats et servir des plats ; à l'origine, un chef était responsable de tout le travail, puis a recruté de nouveaux chefs, de nouveaux chefs C'est aussi faire tout le travail et partager la pression du chef d'origine. Le nouveau chef et le chef d'origine sont des clusters
distribué
Beaucoup de "personnes" font des choses différentes ensemble. Ces différentes choses s'ajoutent à une grande chose. Le chef d'origine n'est plus responsable de couper les légumes, de laver la vaisselle et de servir les plats, mais recrute trois personnes pour être responsables respectivement, de sorte que chaque personne ne puisse se concentrer que sur une seule chose, et l'efficacité sera très élevée.
Cluster + distribué (évolutif)
Si le restaurant a beaucoup de commandes, alors nous pouvons recruter deux équipes de chefs et diviser les commandes en deux parties. Les deux équipes de chefs sont équivalentes à des clusters, et chaque équipe cuisine de manière distribuée. Ce type d'équipes supplémentaires chemin
Historique du développement de l'architecture
architecture monolithique
Mettez tous les modules d'un programme dans un seul serveur, et une architecture unique multi-machines peut être réalisée en formant un cluster de serveurs polymorphes
Avantages : développement et déploiement pratiques, adaptés aux petits projets
défaut:
- Démarrage lent du projet
- Mauvaise fiabilité : un module casse et tout le projet casse
- mauvaise évolutivité
- mauvaise évolutivité
- faible niveau de rendement
architecture verticale
L'architecture verticale fait référence à la division de plusieurs modules d'une architecture monolithique en plusieurs projets indépendants. Former plusieurs architectures monolithiques indépendantes.
![image-20220830145315419](https://cuijunjie-1309048755.cos.ap-beijing.myqcloud.com/image/image-20220830145315419.png)
Par rapport à l'architecture monolithique, elle est fondamentalement optimisée, mais l'architecture verticale a aussi ses propres défauts :
Chaque application n'interagit pas entre elles, comme la page de connexion, la page d'informations personnelles, etc. Les fonctions requises par chaque module doivent être ajoutées à chaque application, ce qui entraîne des fonctions plus répétitives.
architecture distribuée
Sur la base de l'architecture verticale, les modules répétés sont extraits pour former un module indépendant et devenir un fournisseur de services
RPC : la façon dont les consommateurs appellent les fournisseurs de services
![image-20220830145815950](https://cuijunjie-1309048755.cos.ap-beijing.myqcloud.com/image/image-20220830145815950.png)
Inconvénients de l'architecture distribuée :
Une fois que le fournisseur de services change, tous les consommateurs doivent changer
Architecture SOA
Les consommateurs et les fournisseurs ne communiquent pas directement, mais interagissent les uns avec les autres via le bus de services
ESB : Enterprise Service Bus, Service Broker. Il fournit principalement un service d'interaction entre services. L'ESB comprend des fonctions telles que : l'équilibrage de charge, le contrôle de flux, le traitement du chiffrement, la surveillance des services, la gestion des exceptions, la surveillance des urgences, etc.
architecture de microservices
L'architecture de microservices est la sublimation de la SOA. L'un des points clés soulignés par l'architecture de microservices est que "l'entreprise doit être entièrement composable et entretenue". Le système d'entreprise unique d'origine sera divisé en plusieurs petites applications. Ces petites applications complètent l'interaction et l'intégration par le biais de services.
Dubbo est un produit de l'ère SOA et SpringCloud est un produit de l'ère des microservices