Maison > Article > interface Web > 10 problématiques à prendre en compte lors de la conception et de la production d'une architecture de site Web à grande échelle_HTML/Xhtml_Production de pages Web
Nous ne parlons pas ici d'environnement PHP, JSP ou .NET. Nous regardons le problème du point de vue de l'architecture. Le langage d'implémentation n'est pas un problème. L'avantage du langage réside dans l'implémentation plutôt que dans la qualité. Quelle que soit la langue que vous choisissez, l'architecture est à laquelle il faut faire face.
1. Traitements de données massives
Comme nous le savons tous, pour certains sites relativement petits, la quantité de données n'est pas très importante. La sélection et la mise à jour peuvent résoudre les problèmes auxquels nous sommes confrontés. La charge elle-même n'est pas très importante et peut être résolue en en ajoutant quelques-unes. index au maximum. Pour les grands sites Web, la quantité de données peut se chiffrer en millions chaque jour. S'il existe une relation plusieurs-à-plusieurs mal conçue, il n'y aura aucun problème au début. Cependant, à mesure que le nombre d'utilisateurs augmente, la quantité. de données augmentera géométriquement. À l’heure actuelle, le coût de sélection et de mise à jour d’une table (sans parler de l’interrogation conjointe de plusieurs tables) est très élevé.
2. Traitement simultané des données
Dans certains cas, les CTO 2.0 ont une épée Shang Fang, qui est mise en cache. La mise en cache est également un gros problème en cas de concurrence élevée et de traitement élevé. Le cache est globalement partagé dans toute l'application. Cependant, lorsque nous apportons des modifications, si deux ou plusieurs requêtes demandent des mises à jour du cache en même temps, l'application mourra directement. À l’heure actuelle, une bonne stratégie de traitement simultané des données et une bonne stratégie de mise en cache sont nécessaires.
De plus, il y a le problème du blocage dans la base de données. Peut-être que nous ne le ressentons pas en temps ordinaire. La probabilité d'un blocage dans les situations de concurrence élevée est très élevée.
3. Problèmes de stockage des fichiers
Pour certains sites 2.0 qui prennent en charge le téléchargement de fichiers, nous devrions réfléchir davantage à la manière dont les fichiers doivent être stockés et indexés efficacement lorsque la capacité du disque dur devient de plus en plus grande. Une solution courante consiste à stocker les fichiers par date et par type. Mais lorsque le volume de fichiers est constitué de données massives, si un disque dur stocke 500 Go de fichiers triviaux, alors l'Io du disque sera un énorme problème lors de la maintenance et de l'utilisation, même si votre bande passante est suffisante, mais que le disque peut ne pas répondre. Si le téléchargement est également impliqué à ce moment-là, le disque sera facilement saturé.
Peut-être que l'utilisation de RAID et de serveurs de stockage dédiés peut résoudre le problème actuel, mais il y a toujours un problème d'accès depuis divers endroits. Peut-être que notre serveur est à Pékin, au Yunnan ou au Xinzang. Comment résoudre la vitesse d'accès si nous faisons de la distribution ? formule, alors comment devrions-nous planifier notre index et notre structure de fichiers.
Nous devons donc admettre que le stockage de fichiers est un problème très difficile
4. Traitement des relations de données
Nous pouvons facilement planifier une base de données conforme au troisième paradigme, qui regorge de relations plusieurs-à-plusieurs, et pouvons également utiliser GUID pour remplacer INDENTIFY COLUMN. Cependant, à l'ère 2.0 où les relations plusieurs-à-plusieurs. sont abondants, le troisième paradigme est Le premier doit être écarté. Les requêtes conjointes multi-tables doivent être efficacement réduites au minimum.
5. Problème d'index de données
Comme nous le savons tous, l'indexation est le moyen le moins cher et le plus simple d'améliorer l'efficacité des requêtes dans une base de données. Cependant, dans le cas d'une MISE À JOUR élevée, le coût de la mise à jour et de la suppression sera inimaginable. L'auteur a rencontré une situation où la mise à jour d'un index ciblé prenait 10 minutes. Donc pour le site, ces bases sont insupportables.
L'indexation et la mise à jour sont des ennemis naturels. Les problèmes A, D et E sont des problèmes que nous devons prendre en compte lors de l'architecture, et ce sont peut-être aussi les problèmes qui prennent le plus de temps.
6. Traitement distribué
Pour les sites Web 2.0, en raison de leur forte interactivité, l'effet du CDN est pratiquement nul. Le contenu est mis à jour en temps réel et nous le traitons de manière conventionnelle. Afin de garantir la vitesse d'accès à divers endroits, nous devons faire face à un énorme problème : comment réaliser efficacement la synchronisation et la mise à jour des données. La communication en temps réel des serveurs à divers endroits est un problème qui doit être pris en compte.
7. Analyse des avantages et des inconvénients d'Ajax
AJAX réussit, et AJAX échoue. AJAX est devenu la tendance dominante, et tout à coup, j'ai découvert que publier et se baser sur XMLHTTP était si simple. Le client obtient ou publie des données sur le serveur, et le serveur les renvoie après avoir reçu la demande de données. Il s'agit d'une requête AJAX normale. Mais lors du traitement AJAX, si nous utilisons un outil de capture de paquets, le retour et le traitement des données seront clairs en un coup d'œil. Pour certaines requêtes AJAX gourmandes en calcul, nous pouvons construire une machine d'envoi de paquets, qui peut facilement tuer un serveur Web.
8. Analyse de la sécurité des données
Pour le protocole HTTP, les paquets de données sont transmis en texte clair. Peut-être pouvons-nous dire que nous pouvons utiliser le cryptage, mais pour le problème G, le processus de cryptage peut être en texte clair (comme le QQ que nous connaissons, vous pouvez). juger facilement son cryptage et écrire efficacement une méthode de cryptage et de déchiffrement similaire à la sienne). Lorsque le trafic de votre site n'est pas très important, personne ne se souciera de vous, mais lorsque votre trafic augmente, les soi-disant plug-ins et les soi-disant messages de masse se succèderont (vous pouvez voir les indices des messages de masse sur le début de QQ). Peut-être pouvons-nous affirmer en toute sécurité que nous pouvons utiliser un jugement de niveau supérieur ou même HTTPS pour l'implémenter. Notez que lorsque vous effectuez ces processus, vous paierez des coûts énormes en matière de base de données, d'E/S et de CPU. Pour certains envois massifs, c’est pratiquement impossible. L'auteur a réussi à réaliser des messages de masse pour l'espace Baidu et l'espace qq. Si vous êtes prêt à essayer, ce n’est en fait pas difficile.
9. Problèmes de synchronisation des données et de traitement des clusters
Lorsque l'un de nos serveurs de base de données est débordé, nous devons alors effectuer un chargement et un clustering basés sur la base de données. Il s'agit peut-être du problème le plus préoccupant à l'heure actuelle. La transmission des données repose sur la transmission réseau. Selon la conception de la base de données, le retard des données est un problème terrible et inévitable. Dans ce cas, nous devons utiliser d'autres moyens pour le résoudre. résoudre le problème. Assurez-vous qu’une interaction efficace est obtenue dans ce délai de quelques secondes ou plus. Tels que le hachage des données, la segmentation, le traitement du contenu et d'autres problèmes.
10. Canaux de partage de données et tendances OPENAPI
Openapi est devenu une tendance inévitable. De Google, Facebook, Myspace aux écoles nationales, tout le monde réfléchit à cette question. Il peut fidéliser les utilisateurs plus efficacement, stimuler plus d'intérêt chez les utilisateurs et attirer plus de personnes. développement. À l’heure actuelle, une plateforme de partage de données efficace et une plateforme ouverte de données sont devenues indispensables. Garantir la sécurité et les performances des données dans le cas des interfaces ouvertes est une autre question que nous devons sérieusement considérer.