本文旨在協助您選擇 Pub/Sub 和 Pub/Sub Lite。您必須熟悉 Pub/Sub 的基本概念,例如主題和訂閱項目,才能閱讀本文。如果您是 Pub/Sub 新手,請先參閱「什麼是 Pub/Sub」一文。
Pub/Sub 和 Pub/Sub Lite 是可水平擴充的代管訊息服務。這些服務可處理大量資料,並支援大量儲存空間需求。在大多數應用程式整合和數據分析用途中,Pub/Sub 通常是預設解決方案。這項服務功能豐富,且全由 Google 管理。建議在訊息傳遞傳輸量較穩定、工作負載可從分區型系統中受益,且成本是重要考量的應用程式中使用 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 執行的 Pull。
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,請試試這些教學課程: