2011-08-14 17 views
3

数百万のオーディオアイテムをユーザーが自分のサーバーにアップロードしたいと考えています。現在のアプリはコンテンツを与え、トランスコードし、最後にftpでストレージサーバに送信するように設計されています。大量アップロードのサーバー負荷とスケーラビリティ

  1. は、アプリケーションサーバーが複数のサーバー(Webアプリケーションの負荷を運ぶために)にスケーリングした後、トランスコーディングを、コメント、アップロードのようなユーザーによる巨大なタスクを負担することができない:私は知りたいですか?

  2. 上記の質問の答えが「はい」の場合、それは正しい、最良のアプローチですか?優れたアーキテクチャはストレージサーバーにトランスコーディングを送信することになるため、ジョブの終了とアプリケーションサーバーへの応答の送信を待つが、同時に複雑さと不安が増えます。

  3. このタイプのウェブサイトの一般的な方法は何ですか?

  4. ストレージサーバーにアップロードとトランスコードのジョブを送信すると、長期的なスケーラビリティでエンタープライズストレージテクノロジと互換性がありますか?

5現在のアプリケーションはPHPに基づいています。アップロードオーバーロードを克服するためにtmpフォルダを別のサーバに移動することは可能ですか?

答えてくれてありがとう、tmpフォルダの質問番号5。私はApacheのtmpフォルダを意味します。最終的な保存先(例:ストレージサーバーまたは任意のソリューション)に移動する前にアップロードされたすべてのファイルは、Apacheのtmpフォルダに保存されています。私はこれがApacheのルールで、アップロードされたすべてのファイルが最初にアプリケーションサーバーに配置されるべきなのかどうか疑問に思っていたので、一時的なストレージまたはサーバーに大量のストレージを制御、拡張、私は最終的な場所に送信する前にアップロードされたファイルのゲストになるappcheのtmpフォルダとしてサーバーまたはストレージソリューションを意味します。私は、データベース、ストレージ、ロードバランシング、memcacheなどのスケーリングに関するすべてのことを研究し、設計しましたが、これは私の未解決の問題の1つです。ユーザーがメインサーバーに到着した新着ファイルは、スケーリングされたアーキテクトで使用されますか?そして、これに対する共通の解決策は何ですか? (1つのボックスソリューションでは、すべてのファイルがappcheのtmpディレクトリに一時的に格納されますが、膨大な量のコンテンツとスケーリングされたシステムでは一時的に使用されます)。 よろしく

答えて

4

私は、この(私がコメントを追加したいが、私のテキストが長すぎた)、いくつかの考えに答えることができます感じていないので:あなたは、このような大規模なシステムを作成する場合は

  1. を(それが聞こえるように)見るためにいくつかのパフォーマンステスト、同時接続数/アップロード数、あなたのアーキテクチャが処理できるものはどれくらいありますか。私がいつも言うように:あなたがそれを知らないならば:「いいえ、それはできません」。

  2. 重い負荷を処理する最善の方法だと思います(これはアップロードがたくさんあり、アプリケーションサーバーから多くのブロックされたスレッドが必要です( - >これはファイルサーバーを処理するためにAppserverを使用しないことを意味します)どのような場合でも、アプリケーションサーバはトランスコーディングシステムの応答を待つべきではありません。 - >ユーザに、ファイルが送信されていることを伝えるだけです(例えば、アップロードしたファイルを待ち行列に入れて処理してください)

  3. 多くのアップロード/変換を処理する必要がある既存のアーキテクチャーを検索します(例:メッセージを送信するなど)。flickr)に移動し、 "flickr"または "scalable web architecture"を検索してください。

  4. 私は実際にこのことを理解していません - しかし、私はそれらのタスク(例:Applicaitonサーバー、Database serversm、Transcondingサーバー、ストレージ、...) - 各サーバーは、彼が一番うまくいくことをすべきです。

  5. 私は恐れていますが、あなたがtmpフォルダを言うときにあなたが話していることはわかりません。

幸運

+1

私はベルンハルトの答えに同意します。ファイルを同期してトランスコードしている間に、(同時にであろうとなかろうとも)何百万人ものユーザーを処理することは期待できません。ユーザーがファイルをアップロードしてから、バックグラウンドで頑張ったり、他のサーバーに送信したりできるようにします。また、エンタープライズ・ストレージ・ソリューションは、ウォレットのサイズと同程度に拡張性があることに気付く必要があります。 – a1wca

+0

私は質問の詳細を追加しました。乾杯! – nntona

+0

正直言って私はあなたの質問に直接答えたり、Apacheやファイルシステムなどを設定するヒントを与えることはできませんが、私はすべてのシステムを分離して、サブシステムの停止が完全なサービスを停止させないようにします。たくさんのアップロードに適しているサーバーがあるかもしれません。多分、別のWebサーバーでより多くのexpirienceを持つ他のユーザーからヒントを得ることができます(lighttpは良いと思われますが、数字はありません)。繰り返しますが、同じような問題のある既存のプロジェクト(例:アップロードが多い)を検索することをおすすめします。 –

関連する問題