選擇 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
跨專案訂閱
客戶代管加密金鑰
dead-letter 主題
「僅一次」傳遞
整合
訊息篩選 是,適用於訊息屬性
訊息複製
訊息轉送 全球 僅供特定區域或可用區使用
訊息結構定義驗證
單一區域中的多個可用區 單一區域中的單一可用區或雙可用區
已訂購的商品 依鍵排序 依分區排序
追蹤訊息確認 每則訊息 每個分區的游標
定價 用多少付多少 為佈建的容量付費
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 主題和訂閱項目屬於可用區資源。這些資源必須位於相同的雲端專案和區域。

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

如要查看 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,請試試下列教學課程: