1

放送システムを構築したい。いくつかのグループで構成されています。各グループには、同じグループの他のメンバーにメッセージをブロードキャストできるユーザーが 1 人います。この種のシステムに適した JMS アーキテクチャは?

永続サブスクリプションでトピックを使用する必要がありますか? pub/sub メッセージング スタイルについてよくわかりません。トピックに複数のサブスクリプションを設定できますか? その場合、各サブスクリプションはブロードキャスト システムのグループを表します。そうでない場合は、各メッセージにグループを指定するヘッダーがあるキューを使用し、JMS セレクターを使用してメッセージをフィルタリングし、各メンバーが属するグループからのメッセージのみを受信するようにする必要がありますか?

また、消費後にメッセージを永続化することも考えています。私は、各メッセージを 1 時間後に期限切れにすることに決めました。各メンバーは、見逃したすべてのメッセージについてデータベースをチェックする必要があります。しかし、メッセージの有効期限が切れたときにアクションを実行するにはどうすればよいでしょうか?

4

1 に答える 1

1

トピックを使用できます... トピックは複数のサブスクライバーを持つことができます。各グループは異なるトピックを使用できます。ユーザーはそのトピックにメッセージを送信でき、すべてのサブスクライバーがそれを受信します。

恒久サブスクライバーは、サブスクライバーがしばらくオフラインになる可能性があり、サブスクライバーへのメッセージが失われてはならない場合にのみ必要です。

キューは、1 対多のシナリオには適していません。ただし、定義済みの受信者のセットがある場合は、受信者ごとにキューを使用して、メッセージをそこにルーティングできます。ただし、これはメッセージを受信者のキューにルーティングするためのオーバーヘッドです。あなたが提案したJMSセレクターのアイデアは機能しますが、キューの場合、メッセージを受信できるクライアントは1つだけです。トピックでは、そのトピックに関心のあるすべてのクライアントに配布されました。

通常、メッセージ自体ではなく、データをデータベースに永続化します。したがって、データベースに永続化してから、配信用のメッセージを作成できます。

于 2014-02-20T16:48:41.047 に答える