1

私は現在、Webページのビデオ変換部分(ユーザーがビデオをアップロードしてflv / mp4に変換するYouTubeのようなもの)を別のサーバーに分離しています。私はすでに同じマシンでギアマンを使用してシステムを実行しています。したがって、ユーザーがビデオファイルをサーバーAにアップロードすると、同じサーバーAのギアマンワーカーによって選択されます。

ここで、ワーカーをサーバーBに移動しました。したがって、サーバーBのワーカーはサーバーAにアップロードされたファイルにアクセスする必要があります。現在、SCPを使用してファイルをAからBにコピーし、処理します。この方法は機能しますが、もっとクリーンな方法があるはずですが、ギアマンワーカーへのファイル(または大きなファイル)の送信に関する情報は見つかりませんでした。この問題にどのようにアプローチしますか?

できれば、クライアントはバックグラウンドジョブを開始するコマンドの一部としてビデオファイルを送信するので、ファイルが実際にワーカー内のどこにあるかを心配する必要はありません。そうすれば、面倒なことなく変換サーバーを追加できます。

Webページとワーカーの両方にPHP(Gearman拡張機能付き)を使用しています。

4

1 に答える 1

5

コメントで示唆されているように、共有FSを持つことは、これを実装するための(通常の)方法であり、ギアマンからのジョブリクエストでパスを渡すだけです。Gearmanは、ジョブのすべての情報をメモリに保持する必要があるため、大量のデータを渡すのには適していません。大きなファイルの転送と配布を処理するために設計されたことはありません。MogileFSも最初はDangaで開発されたため、Gearmanにファイル転送と処理を組み込む必要はありませんでした(これは良いことです。Gearmanよりもこの問題を解決するテクノロジーはかなりあります)。

ビデオが到着したときに分散ワーカーを処理するためにNFSを使用しており、エンコーダーはエンコードされたビデオを、完了時に一般に公開されているNFS共有に戻します。まだ深刻な問題は発生していませんが、NFSは安定しており、その問題はよく知られており、表示される種類の負荷に対してすでに解決されています。

于 2012-07-26T09:42:58.073 に答える