9

私はネットワーク上のさまざまなマシンに多くのアニメーション/ビデオを送信するデジタル サイネージ会社で働いています。以前は、サーバー アプリ (コンテンツ管理システム) からコンテンツを再生するマシンにファイルを送信するために ftp を使用していました。

大きなファイルを送信するような環境でRabbitMQを使用することはできますか(一部のビデオはサイズがギガバイト以上になる場合があります)?ほとんどのファイルは非常に小さいですが、場合によっては大きなビデオを送信することもあります。

また、一部のプレーヤー マシンは後で追加されるため、キューイングは動的でなければなりません (つまり、プレーヤーを追加してコンテンツを送信できるようにします)。この方法で RabbitMQ を構成できますか? (私が見たデモでは、サーバーおよびクライアント アプリケーションが起動する前に、キューを事前に作成する必要があります)。

また、送信アプリがコンテンツをマシンに送信する前にログインする必要があるように、ファイルの送信を保護できますか (FTP のログインなど)。

4

1 に答える 1

4

ファイルの動的コンシューマーを追加するには、パブリッシュ/サブスクライブ動作を使用して、RabbitMQ ブローカーの上で EasyNetQ を使用できます。

Russ Cam が述べたように、Google グループの人々は大きなメッセージを送信しましたが、これは RabbitMQ クラスターを壊す可能性があります。

ソリューションは、FTP (またはその他のファイル転送プロトコル) とメッセージのハイブリッドになる可能性があります。

  • クライアントがファイルを転送するたびに、ファイルへの参照 (FTP URL など) を含むメッセージをバスに発行します。
  • このメッセージのコンシューマーは、ファイルをダウンロードするために FTP 経由で接続します。

EasyNetQ は、RabbitMQ を事前に構成せずに新しいコンシューマーを動的にサブスクライブする (上記のリンクを参照) のに役立つデフォルトのサブスクリプション メカニズムを既に提供しています。

最後に、ファイルを多数の小さなメッセージ チャンクに分割することを考えることができますが、受信側でファイルを再構築する関数を作成する必要があります。最悪の場合、コンシューマーが後で開始した場合に一部のメッセージが失われる可能性があります。

于 2014-04-17T10:22:47.513 に答える