2012-03-02 17 views
2

トピック/キュータイプの実装を選択する方法をアプリケーションに設計するとき。
私が知っ、
a)は、複数の消費者は、唯一の消費者は、キュートピックVsキューを選択する方法

を使用する場合はトピック
B)を使用して、メッセージを使用している場合は、それ以上の点を考慮する必要が提供してください?
たとえば、並行性、メッセージ永続性、ロードバランシング、その他何か?

ありがとうございました。
Rw

答えて

2

1つのコンシューマだけがキューを使用するかどうかは、完全には言えません。

保険証を評価するJava EEアプリがあります。 RatingInキューとRatingOutキューがあります。すべてのお客様がRatingIn Queueに書き込み、RatingOut Queueから読み取ります。また、300人以上のクライアントがいる可能性があります。

複数のクライアントが同じキューにアクセスして読み取りを開始するというトリックは、メッセージヘッダー内のcorrelationIDを使用しています。それをクライアントに固有のものにして、彼らは彼らのユニークなメッセージを拾うだけです。私たちがやっていることは、クライアントのこのcorrelationIDをRatingInにバインドされたメッセージに設定することです。次に、サーバーはプロパティを取得し、それがRatingOutに書き戻されるというメッセージに書き込みます。これにより、ユニークなクライアントのユニークなメッセージが保持されますが、300以上のキューは必要ありません(当社のアプリケーションサーバー管理者がいれば、すぐに管理できなくなります)。

公開方法ともっと関係があると思います。唯一のコンシューマー向けのメッセージを公開する場合は、キューを使用してください。大量のメッセージを生成しないで、複数のコンシューマー向けのメッセージを公開する場合は(また、パブリッシュするコンシューマーの数もわからない場合があります)、トピックを使用します。

関連する問題