0

アプリを開発しています。私はactivemqを使用しています。1 つのプロデューサーが常に 1 つのブローカーにメッセージを送信する方法はありますが、反対側には 3 つのコンシューマーがあります。各コンシューマーはブローカーをリッスンし、キューから任意のメッセージを受け取ることができます。これは可能ですか?

アプリの作成にactivemqを使用しています。dbにログを記録します.ログをdbに書き込むのは時間がかかることを知っているため、コンシューマーはプロデューサーよりもますます遅くなります. 100.000 メッセージ (巨大なオブジェクト) を送信します。プロデューサーは 20 分でメッセージの送信を終了します。しかし、プロデューサーが終了すると、コンシューマーはまだ 4.000 メッセージの処理を終了しています。

4

1 に答える 1

0

はい、あなたが説明していることは可能です。実際、1 つのキューでリッスンするコンシューマーをいくつでも持つことができます。メッセージは、コンシューマー間でラウンドロビン方式でディスパッチされます。

注意すべきことは、ActiveMQ は大きなメッセージよりも小さなメッセージの送信の方がはるかに優れているということです。非常に大きなペイロード (100mb など) を送信する必要がある場合は、プロデューサーとコンシューマーの両方がアクセスできる場所 (ネットワーク ファイル システムなど) にメッセージを保存し、代わりにメッセージの場所を送信する方がはるかに優れています。消費者はそれを使用してメッセージを手動で読むことができます。このようにして、メッセージ ブローカーを介して比較的少量のトラフィックを取得します。

于 2013-09-19T08:09:26.890 に答える