Cloud Tasks 和 Pub/Sub 均可用來傳遞訊息與執行非同步整合作業。不過,雖然兩者功能相似,卻並非完全相同。本頁面協助您針對您的用途選擇合適的產品。
主要差異
Pub/Sub 和 Cloud Tasks 兩者之間最主要的差異,在於隱性叫用和明確叫用的概念。
Pub/Sub 旨在分離事件發布者與這些事件的訂閱者,發布者不須瞭解其訂閱者。因此,除了保證能確實傳送訊息外,Pub/Sub 還讓發布者無法控制訊息的傳送方式。Pub/Sub 透過這種方式支援隱性叫用,也就是發布者透過發布事件,間接讓訂閱者執行動作。
相反地,Cloud 工作支援明確叫用,讓發布者可完全掌握執行情況。具體來說,發布者可指定每則訊息要從哪個端點傳送出去。
此外,Cloud Tasks 也提供 Pub/Sub 發布者無法使用的佇列和工作管理工具,包括:
- 排定特定的傳送時間
- 控管傳送率
- 可設定重試作業
- 存取與管理佇列中的個別工作
- 簡化工作/訊息建立作業
詳細功能比較
功能 | Cloud 工作 | Cloud Pub/Sub |
---|---|---|
透過 Webhook 推送 | 是 | 是 |
保證至少傳送一次 | 是 | 是 |
可設定重試作業 | 是 | 是 |
簡化工作建立作業 | 是 | 否 |
排定傳送作業 | 是 | 否 |
訂購商品 | 不會。系統會盡量保留佇列中的工作順序。 | 是,透過排序鍵 |
確實控管傳送率 | 是 | 提取訂閱者用戶端可以實作流量控制 |
透過 API 提取 | 否 | 是 |
批次插入 | 否 | 是 |
將每則訊息傳送給多個處理程式/訂閱者 | 否 | 是 |
工作/訊息保留時間 | 30 天 | 最多 31 天 |
工作/訊息的大小上限 | 1 MB | 10 MB |
傳送率上限 | 每個佇列 500 QPS | 無上限 |
地理區域可用性 | 地區 | 全球通用 |
推送處理程式/訂閱者處理時間上限 | 30 分鐘 (HTTP) 10 分鐘 (App Engine 標準自動調整資源配置) 24 小時 (App Engine 標準手動或基本資源配置) 60 分鐘 (App Engine 彈性環境) |
推送作業為 10 分鐘 |
每個專案的佇列/訂閱數量 | 每個專案 1,000 個 (可透過配額增加申請提高上限) | 每個專案 10,000 個 |