このドキュメントは、ビジネス要件に適した 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 サブスクリプションには、ファイルサイズと経過時間に基づいて構成可能なファイル バッチ処理オプションが用意されています。これは、Pub/Sub から Cloud Storage への書き込み用の基本的な Dataflow テンプレートで構成することはできません。
ただし、データを BigQuery テーブルや Cloud Storage バケットなどの Google Cloud リソースに保存する前にデータ変換が必要な Pub/Sub システムでは、Dataflow パイプラインの使用をおすすめします。
Dataflow を使用して変換で Pub/Sub から BigQuery にデータをストリーミングする方法については、Pub/Sub から BigQuery へのストリーミングをご覧ください。
Dataflow を使用した変換により Pub/Sub から Cloud Storage にデータをストリーミングする方法については、Dataflow を使用して Pub/Sub からメッセージをストリーミングするをご覧ください。
次のステップ
各サブスクリプション タイプのワークフローを理解する。