ホームページ >ウェブフロントエンド >フロントエンドQ&A >パブリッシュ/サブスクライブ パターンとオブザーバー パターンの違い

パブリッシュ/サブスクライブ パターンとオブザーバー パターンの違い

DDD
DDDオリジナル
2024-08-13 15:51:21691ブラウズ

この記事では、パブリッシュ/サブスクライブとオブザーバーの 2 つの分離された通信メカニズムであるパターンを比較します。パブリッシュ-サブスクライブにはブロードキャスターが匿名のサブスクライバーにメッセージを送信することが含まれ、オブザーバーには中央のオブザーバーが登録を通知することが含まれます

パブリッシュ/サブスクライブ パターンとオブザーバー パターンの違い

パブリッシュ-サブスクライブとオブザーバーのパターンの主な違い

パブリッシュ-サブスクライブは、パブリッシャーがメッセージをブロードキャストする、分離された通信メカニズムです。身元や番号を知らない複数の加入者。サブスクライバーはトピックやイベントに基づいてメッセージを受信するように登録し、一致するメッセージが公開されるたびに通知を受けます。

オブザーバーも分離された通信メカニズムですが、オブザーバー (サブジェクトとも呼ばれる) のリストを維持する中央オブザーバーが関与します。 )。観察対象のオブジェクト (サブジェクト) が変化すると、それ自体への参照を渡してすべての観察者に通知します。その後、オブザーバーはサブジェクトの状態に基づいて自身を更新します。

最適なパターンの選択

パブリッシュ-サブスクライブ パターンとオブザーバー パターンの選択は、特定のアプリケーション要件によって異なります:

  • パブリッシュ-サブスクライブ: 複数のパターンがある場合に適していますプロデューサーは潜在的に多くのコンシューマーにメッセージを送信し、送信者と受信者は直接対話する必要はありません。
  • オブザーバー: プロデューサーが 1 人でコンシューマーの数が限られており、コンシューマーがプロデューサーに関する詳細な情報を必要とする場合に、より適切です。状態の変化

長所と短所

パブリッシュ-サブスクライブ

長所:

  • 通信が分離され、パブリッシャーとサブスクライバーがお互いを意識することがなくなります。
  • 新しいサブスクライバーを追加することなく追加できるため、スケーラビリティパブリッシャーに影響を与えます。
  • 柔軟性があり、ターゲットを絞ったメッセージ配信を可能にするトピックベースのルーティングが可能です。

短所:

  • オブザーバーパターンよりも実装が複雑になる可能性があります。
  • 通信を促進するためにメッセージブローカーまたはミドルウェアが必要です。

オブザーバー

長所:

  • 一元化されたオブザーバーが通信を管理するため、実装が簡単です。
  • 監視対象のオブジェクトの状態が変化するまでメッセージが送信されないため、オーバーヘッドが低くなります。
  • 消費者は次のことを行うことができます。プロデューサの状態を直接観察します。

短所:

  • 多数のオブザーバがパフォーマンスに影響を与える可能性があるため、スケーラビリティが制限されます。
  • プロデューサとコンシューマの間に結合が生じる可能性があります。

以上がパブリッシュ/サブスクライブ パターンとオブザーバー パターンの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。