選擇訂閱項目類型

這份文件將協助您根據業務需求,選擇合適的 Pub/Sub 訂閱類型。

Pub/Sub 提供下列類型的訂閱項目:

  • 提取訂閱項目會使用訂閱端用戶端,向 Pub/Sub 伺服器要求訊息。

  • 推送訂閱會使用 Pub/Sub 伺服器,向訂閱者應用程式發出要求來傳送訊息。

  • 匯出訂閱項目:直接將訊息匯出至 Cloud de Confiance by S3NS資源。這些訂閱項目包括:

    • BigQuery 訂閱項目會將資料匯出至 BigQuery 資料表。

    • Bigtable 訂閱項目 (預先發布版) 將資料匯出至 Bigtable 資料表。

    • Cloud Storage 訂閱項目會將資料匯出至 Cloud Storage bucket。

Pub/Sub 訂閱項目比較表

下表提供一些指引,協助您為應用程式選擇合適的傳送機制:

Pub/Sub 訂閱項目支援的功能
用途 提取訂閱項目
  • 大量訊息 (每秒 GB 數)。
  • 訊息處理的效率和總處理量至關重要。
  • 無法設定含非自行簽署之 SSL 憑證的公開 HTTPS 端點的環境。
推送訂閱項目
  • 必須由相同 Webhook 處理的多個主題。
  • App Engine 標準 Cloud Run functions 訂閱者。
  • 無法設定 Cloud de Confiance by S3NS依附元件 (例如憑證和用戶端程式庫) 的環境。
匯出訂閱項目
  • 大量訊息,每秒可擴充至數百萬則訊息。
  • 直接將訊息傳送至 Cloud de Confiance 資源 ,不需額外處理。
端點 提取訂閱項目 網路上任何具備授權憑證的裝置,都可以呼叫 Pub/Sub API。
推送訂閱項目

可透過公開網路存取的 HTTPS 伺服器,且具備非自行簽署的憑證。

接收端點可能會與 Pub/Sub 訂閱項目分離,因此來自多個訂閱項目的訊息會傳送至單一端點。

匯出訂閱項目 訂閱項目會寫入 Cloud de Confiance 資源,例如 BigQuery 資料表或 Cloud Storage bucket。
負載平衡 提取訂閱項目 多個訂閱者可以對同一項訂閱項目發出提取呼叫。 每位訂閱者都會收到部分訊息。
推送訂閱項目

推送端點可以是負載平衡器。

匯出訂閱項目

Pub/Sub 服務會自動平衡負載。

設定 提取訂閱項目

不需要設定。

推送訂閱項目
  • 如果 App Engine 應用程式與訂閱者位於相同專案,則不需要任何設定。
  • 在控制台中,不需要驗證推送端點。 Cloud de Confiance
  • 端點必須可透過 DNS 名稱連線,且已安裝 SSL 憑證。
匯出訂閱項目 訂閱項目匯出的 Cloud de Confiance 資源必須存在,且已設定適當權限。
流量控制 提取訂閱項目 訂閱者用戶端會控管傳送率。訂閱者可以動態修改確認期限,允許訊息處理作業耗費任意長的時間。
推送訂閱項目 Pub/Sub 伺服器會自動實作流量控制。客戶不必處理訊息流程,不過,您可以傳回 HTTP 錯誤,指出用戶端無法處理目前的訊息負載。
匯出訂閱項目 Pub/Sub 會自動實作流量控制,以最佳化將訊息寫入目的地 Cloud de Confiance資源的作業。
效率與總處理量 提取訂閱項目 透過批次傳送、確認和大量平行處理,以低 CPU 和頻寬達到高處理量。如果經常輪詢以盡量縮短訊息傳送時間,可能會導致效率不彰。
推送訂閱項目 每個要求傳送一個訊息,並限制尚未解決訊息的數目上限。
匯出訂閱項目 Pub/Sub 會動態處理可擴充性。

使用匯出訂閱項目的時機

如果沒有匯出訂閱項目,您需要提取或推送訂閱項目和訂閱端 (例如 Dataflow),才能讀取訊息並將訊息寫入 Cloud de Confiance 資源。如果訊息不需要先經過額外處理再儲存,就不必執行 Dataflow 工作,以免產生額外負擔。

匯出訂閱項目有以下優點:

  • 部署作業簡單。您可以在控制台、 Cloud de Confiance by S3NS CLI、用戶端程式庫或 Pub/Sub API 中,透過單一工作流程設定匯出訂閱項目。

  • 成本低廉。減少包含 Dataflow 工作的類似 Pub/Sub 管道的額外成本和延遲時間。如果訊息系統不需要在儲存前進行額外處理,這項成本最佳化功能就非常實用。

  • 監控工作量極少。匯出訂閱項目是多租戶 Pub/Sub 服務的一部分,因此您不必執行個別的監控工作。

  • 彈性:匯出訂閱項目提供 Google 提供的 Dataflow 範本沒有的功能。例如:

    • BigQuery 訂閱項目可以使用所連結主題的結構定義。

    • Cloud Storage 訂閱方案提供可設定的檔案批次處理選項,可根據檔案大小和經過的時間進行設定。

    • Bigtable 訂閱項目 (搶先版) 內建可將訊息中繼資料寫入專屬資料欄系列的選項。

不過,如果應用程式需要執行無法使用單一訊息轉換 (SMT) 實作的資料轉換,建議您在將訊息寫入目的地之前,使用 Dataflow 管道。

如要瞭解如何使用 Dataflow,將 Pub/Sub 中的資料串流至 BigQuery 並進行轉換,請參閱「將資料從 Pub/Sub 串流至 BigQuery」。

如要瞭解如何使用 Dataflow 串流資料,並從 Pub/Sub 轉換資料後傳送至 Cloud Storage,請參閱「使用 Dataflow 從 Pub/Sub 串流訊息」。

後續步驟

瞭解各訂閱類型的流程: