このドキュメントは、ビジネス要件に適した Pub/Sub サブスクリプションタイプを選択するのに役立ちます。
準備
- サブスクリプションについて確認します。
Pub/Sub サブスクリプションの比較表
次の表は、アプリケーションに適した配信メカニズムの選択に関するガイドを示しています。
Pub/Sub サブスクリプションでサポートされる機能 | |
---|---|
使用例 |
Pull サブスクリプション
|
push サブスクリプション
|
|
エクスポート サブスクリプション
|
|
エンドポイント |
pull サブスクリプション
承認済みの認証情報を持つインターネット上のデバイスが Pub/Sub API を呼び出すことができます。 |
push サブスクリプション
|
|
エクスポート サブスクリプション
|
|
ロード バランシング |
Pull サブスクリプション
|
push サブスクリプション
push エンドポイントにはロードバランサを指定できます。 |
|
エクスポート サブスクリプション
Pub/Sub サービスは負荷を自動的に分散します。 |
|
構成 |
pull サブスクリプション
構成は不要です。 |
push サブスクリプション
|
|
エクスポート サブスクリプション
|
|
フロー制御 |
pull サブスクリプション
サブスクライバー クライアントは配信レートを制御します。サブスクライバーは確認応答期限を動的に変更し、メッセージ処理期間を必要に応じて長くすることができます。 |
push サブスクリプション
Pub/Sub サーバーはフロー制御を自動的に実装します。クライアント側でメッセージ フローを処理する必要はありません。 ただし、HTTP エラーを戻すことで、クライアントが現在のメッセージ読み込みを処理できないことを示すこともできます。 |
|
エクスポート サブスクリプション
Pub/Sub サーバーは、Google Cloud リソースへのメッセージ書き込みを最適化するためのフロー制御を自動的に実装します。 |
|
効率とスループット |
pull サブスクリプション
バッチでの配信、確認応答、超並列消費を可能にすることで、低い CPU と帯域幅で高いスループットを実現します。積極的なポーリングを使用してメッセージ配信時間を最小限に抑える場合には効率的でない場合があります。 |
push サブスクリプション
リクエストごとに 1 つのメッセージを配信し、未処理メッセージの最大数を制限します。 |
|
エクスポート サブスクリプション
スケーラビリティは、Pub/Sub サーバーによって動的に処理されます。 |
エクスポート サブスクリプションの用途
エクスポート サブスクリプションがない場合、メッセージを読み取り、Google Cloud リソースに書き込むには、pull サブスクリプションまたは push サブスクリプションとサブスクライバー(Dataflow など)が必要です。 メッセージを保存する前に追加の処理が不要な場合、Dataflow ジョブの実行のオーバーヘッドは必要ありません。
エクスポート サブスクリプションには次の利点があります。
シンプルな導入。エクスポート サブスクリプションは、コンソール、Google Cloud CLI、クライアント ライブラリ、または Pub/Sub API で単一のワークフローを使用して設定できます。
低コスト。Dataflow ジョブを含む同様の Pub/Sub パイプラインの追加コストとレイテンシを削減します。このコスト最適化は、ストレージの前に追加の処理を必要としないメッセージング システムに役立ちます。
最小限のモニタリング。 エクスポート サブスクリプションはマルチテナント Pub/Sub サービスの一部であるため、個別のモニタリング ジョブを実行する必要はありません。
柔軟性。BigQuery サブスクリプションは、トピックがアタッチされているトピックのスキーマを使用できます。これは、Pub/Sub から BigQuery に書き込むための基本的な Dataflow テンプレートでは使用できません。同様に、Cloud Storage サブスクリプションでは、ファイルサイズと経過時間に基づいて構成可能なファイル バッチ オプションが提供されます。これは、Dataflow の基本テンプレートで Pub/Sub から Cloud Storage に書き込むために構成することはできません。
ただし、データを BigQuery テーブルや Cloud Storage バケットなどの Google Cloud リソースに保存する前にデータ変換が必要な Pub/Sub システムでは、Dataflow パイプラインの使用をおすすめします。
Dataflow を使用して変換を行い、Pub/Sub から BigQuery にデータをストリーミングする方法については、Pub/Sub から BigQuery へのストリーミングをご覧ください。
Dataflow を使用した変換により Pub/Sub から Cloud Storage にデータをストリーミングする方法については、Dataflow を使用して Pub/Sub からメッセージをストリーミングするをご覧ください。
次のステップ
各サブスクリプション タイプのワークフローを理解する。