2009-06-09 12 views
11

私はWebイメージサーバーを構築しようとしています。同時に多くのクライアント(10万+)にイメージを提供します。 (クライアント数が少ない場合は、より簡単に問題になります)できるだけ小さい時間遅延で、そうするのが良い方法です。イメージWebサーバーを構築するには?

こちらは初めてのものです。どんな提案も歓迎されます。

+0

既存の画像サーバを使用して検討していますか? http://en.wikipedia.org/wiki/Image_server –

答えて

7

間違いなく良い配送サービスを探してください。 Akamaiは最もよく知られています。

あなたが実際にそれをやりたいのであれば、Apache/IISを忘れてください。 多くの場合、は「軽い」ウェブサーバーです。非常に良い2つはlighthttpNginXwiki)です。特にNginXは本当に堅実なパフォーマンスを持っています。

:コンテンツ配布ネットワーク(CDN)は、ここ数年で栄えており、より簡単で安価なものを見つけるのがずっと簡単です。特に、静的コンテンツをAmazon S3に入れて、CloudFrontを使用するのは簡単です。

+0

私はNginxを試しました、そして、それは本当にきれいなサーバーです。ありがとう。 – Lily

1

画像はどのように配信されますか?画像はオンザフライで生成されていますか?または静的で、ファイルシステムに.jpgやその他の形式で保存されていますか?

いずれにしても、ASP.NET .ashx(汎用ハンドラー)を使用し、System.Drawingクラスを使用します。

あなたはまた、多くのクライアントを持つhttp://support.microsoft.com/kb/323431

+0

すべての画像はオンザフライで生成されます。 – Lily

+0

なぜ落選ですか? – Nate

2

あたりのセットアップTCP/IPネットワーク負荷分散したいと思う、あなたは、(アカマイのような)コンテンツ配信ネットワークを使用してに見てみたいことがあります。表面的には高価に見えるかもしれませんが、ハードウェアの保守コスト、特に帯域幅のコストを見れば、経済的に意味があります。

2

待機時間が最も短い最速の静的ファイルWebサーバーを設計する場合は、ここで説明します。

  1. ソケット(各コアの1)に対応するスレッドのスタックを作成し、キュー
  2. でそれらのソケットを入れソケットは
  3. 準備ができているかを検出するためにイベント・ループを使用します。彼らが終わったら、スタックに戻してください。
  4. スレッドをスレッドに割り当てます。
  5. すべての画像ファイルをメモリにキャッシュします。

これは基本的にIO完了ポートがファイルのキャッシュを差し引いたものです。このモデルは、WindowsおよびSolarisで使用できます。

http://technet.microsoft.com/en-us/sysinternals/bb963891.aspx

alt text

関連する問題