Pub/Sub 是可擴充的非同步訊息服務,會分離產生訊息的服務與處理訊息的服務。
Pub/Sub 可讓服務以非同步方式通訊,延遲時間通常約為 100 毫秒。
Pub/Sub 用於串流分析和資料整合管道,可載入及發布資料。無論是做為服務整合的訊息導向中介軟體,還是做為平行處理工作的佇列,都同樣有效。
Pub/Sub 可讓您建立事件製作者和消費者 (稱為「發布者」和「訂閱者」) 的系統。發布商會透過廣播事件,與訂閱者進行非同步通訊,而不是透過同步遠端程序呼叫 (RPC)。
發布者會將事件傳送至 Pub/Sub 服務,不必理會這些事件的處理方式或時間。接著,Pub/Sub 會將事件傳送至所有會對事件做出反應的服務。在透過 RPC 通訊的系統中,發布者必須等待訂閱者接收資料。不過,Pub/Sub 的非同步整合可提高整體系統的彈性和穩定性。
如要開始使用 Pub/Sub,請參閱使用 Google Cloud 控制台的快速入門導覽課程。如需更詳盡的介紹,請參閱「建立 Pub/Sub 訊息傳遞系統」。
常見用途
- 擷取使用者互動和伺服器事件。如要使用來自使用者應用程式的使用者互動事件,或來自系統的伺服器事件,您可以將這些事件轉送至 Pub/Sub。接著,您可以使用串流處理工具 (例如 Dataflow),將事件傳送至資料庫。這類資料庫的例子包括 BigQuery、Bigtable 和 Cloud Storage。Pub/Sub 可讓您同時收集多個用戶端的事件。
- 即時事件發布。事件 (原始或已處理) 可供團隊和機構的多個應用程式即時處理。Pub/Sub 支援「企業事件匯流排」和事件導向應用程式設計模式。Pub/Sub 可與許多系統整合,將事件匯出至 Pub/Sub。
- 在資料庫之間複製資料。Pub/Sub 通常用於發布資料庫的變更事件。您可以使用這些事件,在 BigQuery 和其他資料儲存系統中建構資料庫狀態和狀態記錄的檢視畫面。
- 平行處理和工作流程。您可以透過 Pub/Sub 訊息與工作站通訊,在多個工作站之間有效分配許多工作。這類工作包括壓縮文字檔、傳送電子郵件通知、評估 AI 模型,以及重新格式化圖片。
- 企業事件匯流排。您可以建立企業級的即時資料共用匯流排,在整個機構中發布業務事件、資料庫更新和分析事件。
- 從應用程式、服務或 IoT 裝置串流資料。 舉例來說,SaaS 應用程式可以發布即時事件動態消息。或者,住宅感應器可以將資料串流傳輸至 Pub/Sub,透過資料處理管道供其他 Google Cloud 產品使用。
- 重新整理分散式快取。舉例來說,應用程式可以發布失效事件,更新已變更物件的 ID。
- 負載平衡可確保可靠性。舉例來說,服務的執行個體可能會部署在多個區域的 Compute Engine 上,但訂閱的是常見主題。如果任何區域的服務發生故障,其他區域會自動接管負載。
比較 Pub/Sub 與其他訊息傳遞技術
Pub/Sub 結合了 Apache Kafka 和 Pulsar 的水平擴充性,以及 Apache ActiveMQ 和 RabbitMQ 等訊息中介軟體的功能。例如無法傳送郵件的佇列和篩選功能。
Pub/Sub 從訊息中介軟體採用的另一項功能是訊息層級的平行處理,而非以分區為基礎的訊息傳遞。Pub/Sub 會將個別訊息「租給」訂閱端用戶端,然後追蹤特定訊息是否已成功處理。
相較之下,其他可水平擴充的訊息系統會使用分區進行水平擴充。這會強制訂閱者依序處理每個分區中的訊息,並將並行用戶端數量限制為分區數量。訊息處理作業可盡量提高訂閱者應用程式的平行處理能力,並確保發布者和訂閱者彼此獨立。
比較服務對服務和服務對用戶端的通訊
Pub/Sub 適用於服務對服務通訊,而非與使用者或物聯網用戶端通訊。其他產品更適合處理其他模式:
- 用戶端/伺服器。如要在行動或網頁應用程式與服務之間傳送訊息,請使用 Firebase 即時資料庫和 Firebase 雲端通訊等產品。
- 非同步服務呼叫。使用 Cloud Tasks。
您可以結合使用這些服務,建構用戶端 -> 服務 -> 資料庫模式。舉例來說,請參閱「透過 WebSocket 串流 Pub/Sub 訊息」教學課程。
整合
Pub/Sub 與其他 Google Cloud 產品整合,可建立功能齊全的訊息傳遞系統:
- 串流處理和資料整合。由 Dataflow 支援,包括 Dataflow 範本和 SQL,可處理資料並將資料整合到 BigQuery 和 Cloud Storage 上的資料湖。您可以在Google Cloud 控制台的 Pub/Sub 和 Dataflow 使用者介面中,找到將資料從 Pub/Sub 移至 Cloud Storage、BigQuery 和其他產品的 Dataflow 範本。此外,您也可以與 Apache Spark 整合,特別是透過 Dataproc 管理時。如要以視覺化方式組合在 Spark + Dataproc 上執行的整合和處理管道,可以使用 Data Fusion。
- 監控、快訊與記錄功能。Monitoring 和 Logging 產品支援此功能。
- 驗證和 IAM。Pub/Sub 採用其他 Google Cloud 產品使用的標準 OAuth 驗證,並支援精細的 IAM,可針對個別資源啟用存取權控管。
- API。Pub/Sub 使用標準 gRPC 和 REST 服務 API 技術,以及多種語言的用戶端程式庫。
- 觸發條件、通知和 Webhook。Pub/Sub 會以 HTTP POST 要求的形式,將訊息推送至 Webhook。您可以使用 Cloud Functions 或其他無伺服器產品,實作工作流程自動化。
- 自動化調度管理。Pub/Sub 可以宣告方式整合至多步驟無伺服器工作流程。大數據和分析協調作業通常使用 Cloud Composer 完成,該服務支援 Pub/Sub 觸發程序。您也可以整合 Pub/Sub 與 Application Integration (搶先版),這是整合平台即服務 (iPaaS) 解決方案。Application Integration 提供 Pub/Sub 觸發條件,可觸發或啟動整合作業。
- Integration Connectors(預覽版) 這些連接器可讓您連線至各種資料來源。 透過連接器, Google Cloud 服務和第三方商務應用程式都會透過透明的標準介面,向整合項目公開。如果是 Pub/Sub,您可以建立 Pub/Sub 連線,用於整合作業。
後續步驟
- 請先參閱 Pub/Sub 快速入門導覽課程。
- 閱讀 Pub/Sub 服務的基本概念。
- 瞭解如何建立 Pub/Sub 訊息傳遞系統。
- 瞭解 Pub/Sub 定價。
- 瞭解 Pub/Sub 的配額和限制。
- 閱讀 Pub/Sub 版本資訊。
- 透過 Qwiklabs 探索資料工程 Google Cloud 服務。