recherche
Maisondéveloppement back-endTutoriel C#.NetExplication détaillée du processus de mise en œuvre de plusieurs serveurs d'images/fichiers

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
C # et le runtime .net: comment ils fonctionnent ensembleC # et le runtime .net: comment ils fonctionnent ensembleApr 19, 2025 am 12:04 AM

C # et .NET Runtime travaillent en étroite collaboration pour permettre aux développeurs de pouvoir de développer des capacités de développement efficaces, puissantes et multiplateformes. 1) C # est un langage de programmation de type et orienté objet conçu pour intégrer de manière transparente avec le framework .NET. 2) Le .NET Runtime gère l'exécution du code C #, fournit une collecte de déchets, des services de sécurité et d'autres services et assure une opération efficace et multiplateforme.

C # .NET DÉVELOPPEMENT: A Guide du débutant pour commencerC # .NET DÉVELOPPEMENT: A Guide du débutant pour commencerApr 18, 2025 am 12:17 AM

Pour démarrer le développement C # .NET, vous devez: 1. Comprendre la connaissance de base de C # et les concepts principaux du .NET Framework; 2. Maître les concepts de base des variables, des types de données, des structures de contrôle, des fonctions et des classes; 3. Apprenez les fonctionnalités avancées de C #, telles que LINQ et la programmation asynchrone; 4. Soyez familier avec les techniques de débogage et les méthodes d'optimisation des performances pour les erreurs courantes. Avec ces étapes, vous pouvez progressivement pénétrer le monde de C # .NET et écrire des applications efficaces.

C # et .NET: Comprendre la relation entre les deuxC # et .NET: Comprendre la relation entre les deuxApr 17, 2025 am 12:07 AM

La relation entre C # et .NET est inséparable, mais ce ne sont pas la même chose. C # est un langage de programmation, tandis que .NET est une plate-forme de développement. C # est utilisé pour écrire du code, compiler dans le langage intermédiaire de .NET (IL) et exécuté par .NET Runtime (CLR).

La pertinence continue de C # .net: un regard sur l'utilisation actuelleLa pertinence continue de C # .net: un regard sur l'utilisation actuelleApr 16, 2025 am 12:07 AM

C # .NET est toujours important car il fournit des outils et des bibliothèques puissants qui prennent en charge le développement d'applications multiples. 1) C # combine .NET Framework pour rendre le développement efficace et pratique. 2) Le mécanisme de collecte de la sécurité et des ordures de C # améliore ses avantages. 3) .NET fournit un environnement de course multiplateforme et des API riches, améliorant la flexibilité du développement.

Du Web au bureau: la polyvalence de C # .netDu Web au bureau: la polyvalence de C # .netApr 15, 2025 am 12:07 AM

C # .NETtisversatileforbothwebandDeskTopDevelopment.1) forweb, useasp.netfordynamicapplications.2) fordesktop, employwindowsformSorwpfforrichInterfaces.3) usexamarinforcross-plateformDevelopment, permanant les codéescosswindows, macos, linux, etmobiledevices.

C # .NET et l'avenir: s'adapter aux nouvelles technologiesC # .NET et l'avenir: s'adapter aux nouvelles technologiesApr 14, 2025 am 12:06 AM

C # et .NET s'adaptent aux besoins des technologies émergentes à travers des mises à jour et des optimisations continues. 1) C # 9.0 et .NET5 introduire le type d'enregistrement et l'optimisation des performances. 2) .netcore améliore le support natif et conteneurisé cloud. 3) ASP.Netcore s'intègre aux technologies Web modernes. 4) ML.NET prend en charge l'apprentissage automatique et l'intelligence artificielle. 5) La programmation asynchrone et les meilleures pratiques améliorent les performances.

C # .NET vous convient-il? Évaluer son applicabilitéC # .NET vous convient-il? Évaluer son applicabilitéApr 13, 2025 am 12:03 AM

C # .NeTissuitableFormenterprise-LevelApplications withithemicrosofosystématetoitsstrongThpyping, RichLibrary, androbustperformance.wowever, itmayNotBeidealForcross-PlatformDevelopmentorwhenRawpeediscritical, whileLanguageSlikerUstorGomightBeferable.

C # code dans .NET: Explorer le processus de programmationC # code dans .NET: Explorer le processus de programmationApr 12, 2025 am 12:02 AM

Le processus de programmation de C # dans .NET comprend les étapes suivantes: 1) l'écriture de code C #, 2) la compilation dans un langage intermédiaire (IL) et 3) l'exécution par .NET Runtime (CLR). Les avantages de C # dans .NET sont sa syntaxe moderne, son système de type puissant et son intégration serrée avec le Framework .NET, adapté à divers scénarios de développement des applications de bureau aux services Web.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP