2

1つのマルチサーバー更新展開システムを設計しようとしています。大きなバイナリ文字列に制限があるかどうかを考えていました。たとえば、1つの100MBファイルの文字列をキューに入れたらどうなりますか?

ありがとう、
ペドロ

4

2 に答える 2

6

私はそれをしましたが、必ずしもお勧めしません。ファイルを GridFS (MongoDB) などに保存してから、RabbitMQ メッセージで _id を参照する方がよいでしょう。その後、Mongo のインターフェースを使用してコンシューマーでファイルを取得し、完了したら削除できます。

私はこれを GridFS の約 20M オブジェクトで実行しており、堅実です。

于 2012-12-30T19:18:30.713 に答える
3

「 RabbitMQ Large Files 」を検索すると、この件に関する大量のアドバイスが見つかりました。

標準的な応答は、理論的には処理できるはずですが、ブローカーが応答しなくなることがあります。

キューの両側 (送信者/受信者) を所有している場合は、データをより管理しやすいデータの「チャンク」に分割することを検討できます。たとえば、100KB のチャンク。これはあなたのブローカーにとってより良いものになります. 上記の検索ヒットの 1 つに、チャンクを行う ruby​​ で書かれた「ストリーミング」送信者へのリンクが含まれていました。

キューの両側を所有していない場合は、「クレーム チェック」の形式を使用することを検討してください。メッセージには、それに適したストレージの場所にある大きな BLOB/ファイル/データの場所が含まれます。

これは非常に興味深い背景情報になる可能性があります: http://rabbitmq.1065348.n5.nabble.com/Can-RabbitMQ-handle-big-messages-tt566.html#a569

于 2012-12-20T19:10:37.543 に答える