Maison  >  Article  >  développement back-end  >  Explication détaillée du processus de mise en œuvre de plusieurs serveurs d'images/fichiers

Explication détaillée du processus de mise en œuvre de plusieurs serveurs d'images/fichiers

Y2J
Y2Joriginal
2017-05-08 09:30:401559parcourir

Le serveur d'images/fichiers, comme son nom l'indique, est utilisé pour stocker des fichiers. Certaines personnes utilisent les services existants d'Alibaba Cloud, et certaines publient des fichiers sur le serveur de fichiers et utilisent une application sur le serveur de fichiers pour les recevoir et les enregistrer. Les méthodes sont différentes. Jetons-y un coup d'œil avec l'éditeur ci-dessous

Écrivez-le devant

Le serveur d'images/fichiers, comme son nom l'indique, est utilisé pour stocker des fichiers. les gens utilisent les services existants d'Alibaba Cloud qui publient des fichiers sur un serveur de fichiers, et une application est utilisée sur le serveur de fichiers pour les recevoir et les enregistrer. Les méthodes varient. Les pilotes vétérans jouent déjà à de mauvais jeux sur différents serveurs. Plusieurs problèmes lors de l'utilisation de plusieurs serveurs d'images/fichiers sont :

1. Comment publier des fichiers téléchargés par le Web sur le serveur de fichiers, à quelle vitesse, combien de bande passante cela prend et combien de temps cela prend.

2. Comment répartir les fichiers uniformément sur chaque serveur d'images.

3. Comment étendre le nouveau serveur d'images et garantir que l'impact sur le contenu distribué est minimisé.

D'une part, j'espère que les conducteurs expérimentés pourront me donner quelques avis. D'autre part, je souhaite le partager avec de nouveaux conducteurs et enregistrer leurs propres trajets.

Déterminez l'objectif final dans la première minute

1. Chaque serveur de fichiers fournit non seulement des fonctions de stockage, mais dispose également de capacités de service externes pour réduire l'utilisation de la bande passante et du disque. Consommation d'E/S.

2. Fournir une évolutivité horizontale simple et facile

3. AsyncAsynchrone IO garantit que les threads ne sont pas bloquants.

4. Le fichier arrive rapidement sur le serveur d'images

Ny toi-même dans la troisième minute

1.NyPrends Méthode Http Post Picture to Image Server

2. Ne pas utiliser l'algorithme Hash modulo

3. Ne pas utiliser de hachage cohérent pour éviter le déplacement du fichier après une expansion horizontale du. serveur, même une petite quantité

Déterminez la méthode de mise en œuvre dans la cinquième minute

1 Partagez le disque du serveur de fichiers dans un dossier en tant que "disque réseau" entre spécifiques. les utilisateurs, c'est-à-dire partager le seul le serveur Web est autorisé à accéder au dossier. Vous pouvez vous référer à la façon de partager un dossier au sein du réseau local ou du dossier partagé Alibaba Cloud.

2. Via le répertoire virtuel IIS, pointez son chemin physique vers le disque réseau. Vous savez que les dossiers partagés utilisent le protocole Tcp/Ip et le protocole Netbios pour communiquer.

3. Configurez WebConfig pour accéder à l'identité du disque réseau (nom d'utilisateur et mot de passe) - doit être configuré

4 Le fichier partagé dans la première étape est déployé sur le serveur de fichiers dans l'un des. les WebApps sous le fichier IIS pour exposer le chemin de l'URL. Parce que vous savez qu'IIS ne peut obtenir aucun contenu du dossier parent sauf en utilisant la lecture de fichiers.

4. Déterminez la manière de répartir uniformément les positions de l'image en fonction du nom de fichier - la méthode du nom de suffixe de fichier utilise "nom de fichier-01" (serveur n° 1) et le nom de suffixe. utilise "nom de fichier-02" (numéro de serveur n°2), le nombre aléatoire est obtenu en utilisant Random. Quel que soit le nombre aléatoire, nous avons le numéro de serveur. Après plusieurs tests d'un million de fois au hasard, 1, 2 et 3 ont été obtenus respectivement environ 330 000 fois, garantissant ainsi l'équilibre. Lors d'une expansion future, ouvrez simplement quelques nombres aléatoires supplémentaires et il n'est pas nécessaire de déplacer des fichiers ou de remanier. Et après avoir augmenté horizontalement le nombre de serveurs, nous espérons garantir que les trois serveurs ne stockeront plus de fichiers et que la plage aléatoire sera réglable. Nous avons déjà enregistré le nom du fichier dans la base de données ou dans le cache, et il a un nom de suffixe. Lorsque nous renvoyons l'URL de l'image à la réception, il nous suffit d'épeler l'adresse IP du serveur de fichiers ou le nom de domaine. sur le nom du suffixe.

Suivez les étapes de la septième minute

1. Déployez FileServerApp Sa fonction est d'exposer l'URL de l'image. très simple. Configurer Un projet vide Asp.Net crée un dossier pour stocker les images. Et partagez le dossier avec le serveur Web. Consultez le diagramme de déploiement dans la dernière section pour plus de détails.

2. Supposons que vous ayez implémenté le partage de dossiers

3. Créez un nouveau répertoire virtuel sous le site IIS. pointe vers le réseau Chemin réseau du dossier partagé

4 Sous Webconfig Ajouter , IIS définit l'authentification pour le répertoire virtuel comme identité du pool d'applications.

5. Utilisez Server.MapPath pour obtenir le chemin réseau de FileServer2 et utilisez vos méthodes de lecture et d'écriture de fichiers pour lire et écrire des fichiers dans le répertoire.

6. Il est recommandé d'utiliser Async pour écrire des fichiers. Les IO asynchrones reviendront pour gérer d'autres choses après avoir envoyé le paquet de demande IO au pilote réseau ou au pilote de disque. À un moment donné dans le futur, le fichier est écrit avec succès, la machine status restaure votre contexte et continue l'exécution de manière synchrone, ce qui peut grandement améliorer le débit de votre serveur Web.

Écrivez les points clés à la fin

S'il reste encore quelque chose de vague, lisez ici pour tout comprendre

【Recommandations associées】

1.Tutoriel vidéo gratuit ASP

2.Tutoriel ASP

3. Tutoriel vidéo de base ASP de Li Yanhui

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn