Sun Java System Message Queue 3.7 UR1 技術の概要

パブリッシュ / サブスクライブメッセージング

パブリッシュ / サブスクライブドメインでは、メッセージプロデューサはパブリッシャーと呼ばれ、メッセージコンシューマはサブスクライバと呼ばれます。これらは、トピックと呼ばれる送信先を使用してメッセージを交換します。パブリッシャーは、トピックへメッセージをプロデュースし、サブスクライバはトピックへサブスクライブして、トピックからメッセージをコンシュームします。

図 2–3 に、パブリッシュ / サブスクライブドメインの単純なメッセージング操作を示します。MyTopicPublisher は、Msg1 を送信先 MyTopic へパブリッシュします。続いて、MyTopicSubscriber1 MyTopicSubscriber2 はそれぞれ、 MyTopic から Msg1 のコピーを受信します。

図 2–3 単純なパブリッシュ / サブスクライブメッセージング

図では、1 つのパブリッシャーが、トピック送信先を介して、同じメッセージを 2 つのサブスクライバに送信している。図は文字で説明される。

パブリッシュ / サブスクライブモデルでは、複数のサブスクライバが必要になるわけではありませんが、このドメインが複数のメッセージをブロードキャストできることを強調するために、図では 2 つのサブスクライバを示しています。トピックに対応するすべてのサブスクライバが、このトピックへパブリッシュされた任意のメッセージのコピーを取得します。

サブスクライバは、非永続でも永続でもかまいません。ブローカは、すべてのアクティブなサブスクライバのメッセージを保持しますが、非アクティブなサブスクライバのメッセージは、これらのサブスクライバが永続である場合にのみ保持します。

図 2–4 に、このパターンによって実現する可能性を表すために、より複雑なパブリッシュ / サブスクライブメッセージングのイメージを示します。複数のプロデューサがメッセージを Topic1 送信先にパブリッシュします。複数のサブスクライバが、Topic1 送信先からメッセージをコンシュームします。サブスクライバがセレクタを使用してメッセージをフィルタ処理しないかぎり、各サブスクライバは、選択したトピックへパブリッシュされたすべてのメッセージを取得します。図 2–4 では、MyTSubscriber2Msg2 をフィルタで除外しています。

図 2–4 複雑なパブリッシュ / サブスクライブメッセージング

図では、3 つのパブリッシャーが、1 つのトピック送信先を介して 3 つのサブスクライバへメッセージを送信している。図は文字で説明される。

この複雑な図では、パブリッシュ / サブスクライブメッセージングに関するその他の要点が多数示されています。

パブリッシュ / サブスクライブモデルの主要なメリットは、複数のサブスクライバへメッセージをブロードキャストできるという点です。