Cloud Pub/Sub とは

Cloud Pub/Sub は、エンタープライズ メッセージ指向ミドルウェアの柔軟性と信頼性をクラウドにもたらします。また、最新のストリーム分析パイプラインの基盤となるスケーラブルで耐久性のあるイベント取り込み・配信システムでもあります。送信者と受信者を切り離す多対多の非同期メッセージングを提供することによって、別々に開発されたアプリケーションの間で安全かつ高可用な通信を実現します。Cloud Pub/Sub は、Google Cloud Platform 上や外部でホストされているシステムをデベロッパーが速やかに統合できるようにするため、低レイテンシで耐久性のあるメッセージングを提供します。

メッセージングの開発に慣れていて、すぐに始める場合は、 クイックスタートをお試しください。より基本的な情報については、Cloud Pub/Sub システム機能の構築をご覧ください。他に、Cloud Pub/Sub ドキュメントの概要クライアント ライブラリから進めていただくこともできます。

基本コンセプト

  • トピック: パブリッシャーがメッセージを送信する名前付きのリソース。
  • サブスクリプション: メッセージ ストリームを表す名前付きのリソース。このストリームは、特定の 1 つのトピックからサブスクライバー アプリケーションに配信されます。サブスクリプションとメッセージ配信体系の詳細については、サブスクライバー ガイドをご覧ください。
  • メッセージ: パブリッシャーがトピックに送信し、最終的にはサブスクライバーに配信されるデータ。データと属性を組み合わせることもできます。
  • メッセージ属性: パブリッシャーがメッセージに設定できる Key-Value ペア。たとえば、キー iana.org/language_tag、値 en をメッセージに付加すれば、英語圏のサブスクライバー向けメッセージとして識別できるようになります。

パブリッシャーとサブスクライバーの関係

パブリッシャー アプリケーションによって、メッセージが作成され、トピックに送信されます。サブスクライバー アプリケーションによって、トピックに対するサブスクリプションが作成され、それからメッセージが受け取られます。通信は 1 対多(ファンアウト)、多対 1(ファンイン)、多対多にできます。

Cloud Pub/Sub メッセージ フロー

Cloud Pub/Sub システムにおけるコンポーネントの概要とコンポーネント間のメッセージの流れを以下に示します。

  1. Cloud Pub/Sub サービスでは、パブリッシャー アプリケーションによってトピックが作成され、そのトピックにメッセージが送信されます。メッセージには、ペイロードと、そのペイロードのコンテンツを説明するオプションの属性が含まれています。
  2. メッセージは、サブスクライバーによって配信され、確認応答があるまで、「メッセージ ストア」に保持されます。
  3. Cloud Pub/Sub が、トピックからそのすべてのサブスクリプションに個別にメッセージを転送します。Cloud Pub/Sub がサブスクライバーが選択したエンドポイントに push するか、サブスクライバーがサービスからそれらを pull することにより、各サブスクリプションがメッセージを受信します。
  4. サブスクライバーは、サブスクリプションから保留中のメッセージを受信し、それぞれを Cloud Pub/Sub サービスで確認応答します。
  5. メッセージがサブスクライバーによって確認応答され、サブスクリプションのメッセージキューから削除されます。

パブリッシャーとサブスクライバーのエンドポイント

googleapis.com に HTTPS リクエストを行えるアプリケーションであれば、パブリッシャーにすることができます。たとえば、App Engine アプリ、Google Compute Engine または他のサードパーティ ネットワークにホスティングされているウェブサービス、デスクトップやモバイル デバイスにインストールされているアプリ、さらにはブラウザもパブリッシャーにすることができます。

また、googleapis.com に HTTPS リクエストを行えるアプリケーションであれば、pull サブスクライバーにすることもできます。

push サブスクライバーは、HTTPS を介した POST リクエストを受け入れられる Webhook エンドポイントにする必要があります。

一般的なユースケース

  • ネットワーク クラスタでの負荷のバランス調整。 たとえば、Google Compute Engine インスタンスなど、複数のワーカー間で、タスクの大規模なキューを効率的に分配できます。
  • 非同期ワークフローの実装。 たとえば、順序処理アプリケーションによってトピックに順序を設定し、そこから 1 つ以上のワーカーによって処理できるように設定できます。
  • イベント通知の配信。 たとえば、ユーザーからの登録を受け付けるサービスで、新規ユーザーが登録するたびに通知を送信したり、ダウンストリーム サービスでイベントの通知を受け取るようにサブスクライブしたりすることができます。
  • 分散キャッシュの更新。 たとえば、アプリケーションで無効なイベントをパブリッシュし、変更されたオブジェクトの ID を更新できます。
  • 複数のシステムへのロギング。 たとえば、Google Compute Engine インスタンスでモニタリング システムにログを書き込み、データベースとして後で照会したりできます。
  • さまざまなプロセスまたはデバイスからのデータ ストリーミング。 たとえば、クラウドにホストされているバックエンド サーバーに人感センサーからデータをストリーミングできます。
  • 信頼性の向上。 たとえば、シングルゾーンの Compute Engine サービスが、別のゾーンやリージョンで発生した障害から回復するために共通のトピックにサブスクライブして追加的なゾーンでの処理を遂行できます。

Cloud Pub/Sub の統合

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Pub/Sub ドキュメント