2

アプリケーションを設計するとき、トピック/キュー タイプの実装を選択する方法。
a) 複数のコンシューマ
がメッセージを使用する場合はトピックを使用
b) コンシューマが 1 つだけの場合はキューを使用

他に考慮すべき点があれば教えてください。
たとえば、同時実行性、メッセージの永続性、負荷分散、その他は?

ありがとう。
Rw

4

1 に答える 1

2

これは、キューを使用する Consumer が 1 つだけの場合には、完全には当てはまりません。

保険の見積もりを評価するJava EEアプリがあります。RatingIn キューと RatingOut キューがあります。すべてのクライアントは、RatingIn Queue に書き込み、RatingOut Queue から読み取ります。そして、おそらく 300 人以上のクライアントを抱えています。

複数のクライアントが同じ Queue にアクセスして読み取りを行う場合の秘訣は、メッセージ ヘッダーで correlationID を使用することです。クライアントに固有のものにすると、クライアントは固有のメッセージだけを受け取ります。クライアントでこのcorrelationIDをRatingInにバインドされたメッセージに設定します。次に、サーバーはプロパティを取得し、RatingOut に書き戻すメッセージを書き込みます。これにより、一意のクライアントに対する一意のメッセージが保持されますが、300 以上のキューは必要ありません (当社のアプリ サーバー管理者の数を考えると、すぐに管理できなくなります)。

それは出版方法に関係があると思います。1 人のコンシューマーのみを対象としたメッセージを公開する場合は、キューを使用します。複数のコンシューマー向けのメッセージを発行したいが、大量のメッセージを生成しない場合 (また、発行する必要があるコンシューマーの数がわからない場合もあります) は、トピックを使用します。

于 2012-03-02T13:57:53.500 に答える