本文旨在協助您選擇 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,請試試下列教學課程: