Pub/Sub または Cloud Tasks の選択
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
メッセージの受け渡しと非同期統合を実装する際には、Cloud Tasks と Pub/Sub のどちらも使用できます。コンセプトは似ていますが、それぞれ異なる一連のユースケースを対象に設計されています。このページでは、ユースケースに適したプロダクトを選択できるようユーザーをサポートします。
主な違い
Pub/Sub と Cloud Tasks の主な違いは、暗黙的呼び出しと明示的呼び出しの概念にあります。
Pub/Sub は、イベントのパブリッシャーとそれらのイベントのサブスクライバーを分離することを目的としています。パブリッシャーはサブスクライバーについて理解している必要はありません。そのため、Pub/Sub では、パブリッシャーは配信を保証すること以外に、メッセージ配信を制御できません。このように、Pub/Sub は暗黙の呼び出しをサポートします。パブリッシャーは、イベントをパブリッシュすることで、サブスクライバーにイベントを実行するよう暗黙的に要求します。
Cloud Tasks はこれとは対照的に、明示的な呼び出しを行って、パブリッシャーが実行を完全に制御できるようにすることを目的としています。特に、パブリッシャーは各メッセージが配信されるエンドポイントを指定します。
Cloud Tasks は全体的に、タスクのプロデューサーが特定の Webhook またはリモート プロシージャ コールの実行のタイミングを延期または制御する必要があるユースケースに適しています。Pub/Sub は、実行に対する制御がある程度制限される、一般的なイベントデータの取り込みと配信パターンに適しています。
詳細な機能の比較
機能 |
Cloud Tasks |
Cloud Pub/Sub |
Webhook による push |
○ |
○ |
at-least-once 配信の保証 |
○ |
○ |
構成可能な再試行 |
○ |
○ |
タスク作成の重複排除 |
○ |
× |
計画的な配信 |
○ |
× |
順序付けられた配信 |
×(キューに登録されたタスクの順序はベスト エフォートで保持) |
○(順序指定キーを使用) |
明示的なレート制御 |
○ |
フロー制御を実装できるサブスクライバー クライアントを pull |
API による pull |
× |
○ |
バッチ挿入 |
× |
○ |
メッセージごとに複数のハンドラ / サブスクライバー |
× |
○ |
タスク / メッセージの保持 |
30 日 |
最大 31 日 |
タスク / メッセージの最大サイズ |
1 MB |
10 MB |
最大配信レート |
500 QPS/キュー |
上限なし |
利用可能な地域 |
リージョン |
グローバル |
push ハンドラ / サブスクライバーの最大処理期間 |
30 分(HTTP)
10 分(App Engine スタンダードの自動スケーリング)
24 時間(App Engine スタンダードの手動スケーリングまたは基本スケーリング)
60 分(App Engine フレキシブル) |
push オペレーションに 10 分 |
プロジェクトあたりのキュー / サブスクリプションの数 |
1,000/プロジェクト(割り当て増加リクエストで増やすことが可能) |
10,000/プロジェクト |
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-01-24 UTC。
[{
"type": "thumb-down",
"id": "hardToUnderstand",
"label":"Hard to understand"
},{
"type": "thumb-down",
"id": "incorrectInformationOrSampleCode",
"label":"Incorrect information or sample code"
},{
"type": "thumb-down",
"id": "missingTheInformationSamplesINeed",
"label":"Missing the information/samples I need"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2024-01-24 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2024-01-24 UTC。"]]