選擇 Pub/Sub 或 Pub/Sub Lite

本文旨在協助您選擇 Pub/Sub 和 Pub/Sub Lite。 您必須熟悉 Pub/Sub 的基本概念,例如主題和訂閱項目,才能瞭解本文內容。如果您是 Pub/Sub 新手,請先參閱「什麼是 Pub/Sub」一文。

Pub/Sub 和 Pub/Sub Lite 是可水平擴充的代管訊息服務。這些服務可處理大量資料,並支援龐大的儲存空間需求。對於大多數應用程式整合和分析用途,Pub/Sub 通常是預設解決方案。這項服務功能豐富且全代管,如果應用程式的訊息傳輸量較穩定,工作負載可從分區型系統獲益,且成本是主要考量因素,建議使用 Pub/Sub Lite。

Pub/Sub 提供更多功能、每個訊息的平行處理、全球路徑,以及自動調度資源容量。就訊息複製而言,Pub/Sub 保證同步複製。

Pub/Sub Lite 是以分割區為基礎的解決方案,可降低作業負載、提高全球可用性,並提供部分功能,以提升成本效益。Pub/Sub Lite 需要手動預留及管理資源容量。在 Pub/Sub Lite 中,您可以選擇可用區或區域 Lite 主題。區域 Lite 主題的可用性服務水準協議與 Pub/Sub 主題相同。

請注意,這兩項服務在訊息複製方面的可靠度有所不同。Pub/Sub 支援同步資料複製,並使用三個可用區。區域 Lite 主題會將資料複製到次要區域。區域 Lite 主題只會在一個可用區中複製資料。

業務需求檢查清單

下列問題可協助您選擇合適的 Pub/Sub 訊息服務:

  • 您最重視可靠性、最低營運成本和易於開發嗎?使用 Pub/Sub。

  • 您是否願意承擔管理主題容量的額外營運負擔,並接受區域服務固有的可用性風險,且需要低成本? 使用可用區 Lite 主題。

  • 您是否需要防範區域性故障,願意承擔管理主題容量的額外營運負擔,並要求最低的每吞吐量成本?使用區域 Lite 主題。

如要進一步瞭解 Pub/Sub 和 Pub/Sub Lite 的費用差異,請參閱定價頁面。

功能比較表

功能 Pub/Sub Pub/Sub Lite
資料存取透明化控管機制
容量 自動佈建 使用前先佈建
用戶端程式庫語言 Java、Python、Go、Node.js、C++、C#、PHP、Ruby、SAP、ABAP Java、Python、Go
跨專案訂閱
客戶代管加密金鑰
無效信件主題
「僅一次」傳遞
整合
訊息篩選 是,適用於訊息屬性
訊息複製
訊息轉送 全球 僅供特定區域或可用區使用
訊息結構定義驗證
單一區域中的多個可用區 單一區域中的單一可用區或雙可用區
訂購的送貨方式 依鍵排序 依分區排序
追蹤訊息確認 每則訊息 每個分區的游標
定價 用多少付多少 為佈建的容量付費
REST 端點
資源命名空間 全球 僅供特定區域或可用區使用
保留期限 最多 31 天 無限制
Service 端點 全域和區域 區域
儲存空間 無限制 無限制
訂閱

資料複製

Pub/Sub 主題會將資料複製到區域內的三個可用區。如要進一步瞭解 Pub/Sub 資料複製功能,請參閱「主題中的資料複製」。

區域 Pub/Sub Lite 主題會將資料複製到區域內的兩個可用區。區域 Pub/Sub Lite 主題會在區域內的單一可用區儲存資料。如要進一步瞭解 Pub/Sub Lite 資料複製功能,請參閱「Lite 主題中的資料複製功能」。

訊息轉送

Pub/Sub 和 Pub/Sub Lite 都能從所有區域發布及訂閱訊息,甚至在 Google Cloud以外的區域也沒問題。

Pub/Sub 會在全球各地傳送訊息。在任何區域代管的應用程式都可以將訊息發布到單一主題。系統會根據貴機構政策,在允許的最近區域處理郵件,並將郵件轉寄給訂閱者,不受來源影響。

Pub/Sub Lite 會在區域或可用區內傳送訊息。 訂閱者必須連線至主題所在地區的服務執行個體。因此,發布者和訂閱者必須維持與相同區域的網路連線,才能通訊。發布者可以從任何地方將資料發布至任何主題,但這可能需要連線至遠端區域,進而增加網路延遲。如果訂閱者需要將匯總資料發布至不同位置的主題,就必須連線至每個相關的本機服務執行個體,才能讀取訊息。

資源命名空間

Pub/Sub 主題和訂閱項目是全域資源。Pub/Sub 服務可將訊息儲存在主題儲存政策允許的任何區域。此外,主題和該主題的訂閱項目可以儲存在不同專案中,方便您精細地控管帳單和存取權。最後,無論訂閱者使用哪個服務端點連線至 Pub/Sub,或資料發布者使用哪個服務端點,訂閱者都會收到相同的資料。

區域 Lite 主題和訂閱項目屬於區域資源。這些資源必須位於相同的 Cloud 專案和區域。

區域 Lite 主題和訂閱項目屬於區域資源。 這些資源必須位於相同的 Cloud 專案和區域。

如要查看 Pub/Sub Lite 支援的區域和可用區清單,請參閱 Pub/Sub Lite 位置

容量管理

Pub/Sub 會自動調度資源。系統會自動佈建訊息發布容量,因此您可以任意速率傳送及接收訊息,但不得超過為專案設定的配額。

Pub/Sub Lite 需手動佈建。您必須設定每個 Lite 主題的分區數量。您也必須佈建儲存空間和輸送量容量。處理容量可使用 Lite 預留項目佈建。

提供模式

Pub/Sub 支援多種訊息傳遞模式。包括 Pull (傳統輪詢)、Push (HTTPS POST)、StreamingPull (雙向 RPC,可達到最低延遲和最高效率),以及透過 HTTP REST 和 gRPC 提取。

Pub/Sub Lite 僅支援串流 gRPC 提取訊息傳送。如要要求訊息,訂閱者必須與每個分區建立雙向串流連線。

平行處理工作數量

Pub/Sub 會使用訊息層級的平行處理。這樣一來,無論是來自一個或數千個用戶端的訊息,都能透過單一訂閱項目同時處理。

Pub/Sub Lite 使用分區型平行處理。這會強制用戶端在單一用戶端執行個體上,以線性順序處理每個資料分割區。這會將用戶端執行個體數量上限限制為最多與分區數量相同。

串流管道

Pub/Sub 和 Pub/Sub Lite 都與 Dataflow 整合,可進行無伺服器串流處理和資料整合。Pub/Sub 可讓 Dataflow 更彈性地擴充,並支援 Dataflow SQL

如要開始使用 Dataflow 和 Pub/Sub 或 Pub/Sub Lite,請試試下列教學課程: