ホームページ >バックエンド開発 >C#.Net チュートリアル >複数の画像/ファイルサーバーの導入プロセスの詳細な説明
画像/ファイルサーバーは、名前が示すように、ファイルを保存するために使用されます。また、ファイルサーバーにファイルを投稿し、ファイルサーバー上のアプリケーションを使用してファイルを保存する方法もあります。異なっています。以下のエディタで見てみましょう
前に書いてあります
画像/ファイルサーバーは、その名の通り、ファイルを保存するためのもので、Alibaba Cloudの既存のサービスを利用する人もいますし、ファイルサーバーにファイルを投稿する人もいます。 . ファイル サーバーはファイルの受信と保存にアプリケーションを使用しますが、その方法はさまざまです。ベテランドライバーはすでにさまざまなサーバーでひどいゲームをプレイしています。複数の画像/ファイル サーバーを使用する場合のいくつかの問題は次のとおりです:
1. Web によってアップロードされたファイルをファイル サーバーに投稿する方法、速度、必要な帯域幅、および時間がどれくらいかかるか。
2. 各画像サーバーにファイルを均等に分散する方法。
3. 新しい画像サーバーを拡張し、配信されるコンテンツへの影響を最小限に抑える方法。
この記事を共有するにあたり、経験豊富なドライバーから意見をもらえることを期待する一方で、新しいドライバーと共有して自分の旅を記録したいと考えています。
最初の 1 分で最終目標を決定する
1. 各ファイル サーバーはストレージ機能を提供するだけでなく、各 Web サーバーの帯域幅占有とディスク IO 消費を削減する外部サービス機能も備えています。
2. シンプルで簡単な水平拡張機能を提供します
3. 非同期非同期IO はスレッドがノンブロッキングであることを保証します。
4. ファイルはすぐに画像サーバーに到着します
3分以内に自分を否定します
1.拒否画像サーバーに画像をHTTP投稿する方法を採用します
2.ハッシュモジュロを使用して拒否しますアルゴリズム
3. たとえ少量であっても、サーバーの水平拡張後のファイルの移動を避けるために一貫したハッシュの使用を拒否します
5分以内に実装方法を決定します
1. ファイルサーバーのディスクをフォルダーに共有します。これは、Web サーバーのみが共有フォルダーへのアクセス権限を持つことを意味します。LAN または Alibaba Cloud 共有フォルダー内のフォルダーを共有する方法を参照できます。
2. IIS 仮想ディレクトリを介して、その物理パスをネットワーク ディスクに指定します。共有フォルダーが通信に Tcp/Ip プロトコルと Netbios プロトコルを使用することはご存知でしょう。
3. ネットワーク ディスク ID (ユーザー名とパスワード) にアクセスするように WebConfig を構成します。構成する必要があります。
4. 最初のステップで共有されたファイルは、ファイル サーバー上の IIS の下の WebApp 内のファイルに展開されます。 URL パス。 IIS は、ファイル読み取りを使用する以外は親フォルダー内のコンテンツを取得できないことがわかっているためです。
4. ファイル名に応じて画像の位置を均等に分散する方法を決定します。ファイルサフィックス名は「ファイル名-01」(サーバー番号1)を使用し、サフィックス名は「ファイル名」を使用します。 -02" (サーバー No. 2)。乱数は Random を使用して取得されます。乱数が何であれ、サーバー番号がわかります。ランダムに100万回のテストを繰り返した結果、1、2、3がそれぞれ約33万回得られ、バランスが保たれています。将来拡張する場合は、さらにいくつかの乱数を開くだけで、ファイルを移動したり再ハッシュしたりする必要はありません。そして、サーバーの数を水平方向に拡張した後、3 つのサーバーにファイルが保存されなくなり、ランダム範囲が調整できるようにしたいと考えています。ファイル名はすでにデータベースまたはキャッシュに保存されており、サフィックス名が付いています。画像のURLをフロントデスクに返すときは、サフィックス名に基づいてファイルサーバーのIPまたはドメイン名を入力するだけで済みます。 。
7 番目の手順に従います
1. FileServerApp をデプロイします。その機能は、Asp.Net 空のプロジェクトを作成し、保存するフォルダーを作成することです。画像。詳細については、最後のセクションの展開図を参照してください。
2. フォルダー共有
を実装していると仮定します。3. IIS サイトの下に新しい仮想ディレクトリを作成します。物理パスがネットワーク共有フォルダー
を指していることに注意してください。 4. Webconfig Next
5. Server.MapPath
を使用して FileServer2 のネットワーク パスを取得し、ファイルの読み取りおよび書き込みメソッドを使用してディレクトリ内のファイルを読み取りおよび書き込みます。6. ファイルの書き込みには Async を使用することをお勧めします。将来のある時点で、ファイルは IO 要求パケットをネットワーク ドライバー に送信した後、他の処理に戻ります。正常に書き込まれると、 ステータス マシンはコンテキストを復元し、同期的に実行を継続します。これにより、Web サーバーのスループットが大幅に向上します。
最後に要点を書きます
まだ曖昧な点がある場合は、ここを読むとすべて理解できます
【関連おすすめ】
2 .ASP チュートリアル
以上が複数の画像/ファイルサーバーの導入プロセスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。