ソフトウェア アーキテクチャでは、パブリッシュとサブスクライブはメッセージング パラダイムです。メッセージの送信者はメッセージを特定の受信者に直接送信しませんが、どのサブスクライバーが存在するかを知ることなく、パブリッシュされたメッセージをさまざまなカテゴリに分割します。同様に、サブスクライバーは、どのパブリッシャーが存在するかを知らなくても、1 つ以上のカテゴリに関心を示し、関心のあるメッセージのみを受信できます。
ソフトウェア アーキテクチャでは、パブリッシュとサブスクライブは、メッセージの送信者 (パブリッシャーと呼ばれる) が特定のユーザーにメッセージを直接送信しないメッセージング パラダイムです。受信者 (サブスクライバーと呼ばれます)。代わりに、公開されたメッセージは、どのサブスクライバー (存在する場合) が存在するかを知ることなく、さまざまなカテゴリにグループ化されます。同様に、サブスクライバーは、どのパブリッシャー (存在する場合) を知らなくても、1 つ以上のカテゴリーに関心を示し、興味のあるメッセージのみを受信できます。
パブリッシュ/サブスクライブはメッセージ キュー パラダイムの兄弟であり、通常はより大規模なメッセージ指向ミドルウェア システムの一部です。ほとんどのメッセージング システムは、Java Message Service (JMS) などの API でメッセージ キュー モデルとパブリッシュ/サブスクライブ モデルの両方をサポートしています。
このモードでは、ネットワークのスケーラビリティが向上し、より動的なネットワーク トポロジが提供されますが、パブリッシャーおよびパブリッシュされたデータに対する構造変更の柔軟性も低下します。
パブリッシュ/サブスクライブ モデルでは、通常、サブスクライバーはパブリッシュされたすべてのメッセージのサブセットを受信します。受け入れて処理するメッセージを選択するプロセスは、フィルタリングと呼ばれます。フィルタリングには、トピックベースとコンテンツベースの 2 つの一般的な形式があります。
トピックベースのシステムでは、メッセージはトピックまたは名前付きチャネルにパブリッシュされます。購読者は、購読しているトピックに関するすべてのメッセージを受信し、同じトピックのすべての購読者は同じメッセージを受信します。パブリッシャーは、サブスクライバーがサブスクライブするメッセージ カテゴリを定義する責任があります。
コンテンツベースのシステムでは、サブスクライバは関心のあるメッセージの条件を定義します。メッセージの属性またはコンテンツがサブスクライバによって定義された条件を満たす場合にのみ、メッセージはサブスクライバに配信されます。 。購読者はメッセージを分類する責任があります。
一部のシステムは、この 2 つの組み合わせをサポートしています。パブリッシャーはトピックにメッセージをパブリッシュし、サブスクライバーは 1 つ以上のトピックにコンテンツベースのサブスクリプションを登録します。
以上がパブリッシュとサブスクライブとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。