Eventarc Advanced 簡介

您可以使用 Eventarc 建構以事件為準和以訊息為基礎的架構,而無須實作、自訂或維護基礎架構。

Eventarc 提供兩種版本:Eventarc AdvancedEventarc Standard。這兩個版本都提供可擴充、無伺服器且全代管的事件解決方案,可讓您從來源異步路由事件至目標。詳情請參閱「選擇 Eventarc Advanced 或 Eventarc Standard」。

Eventarc Advanced 的設計目的,是透過應用程式、服務和端點的訊息,簡化事件資料的擷取、調度和傳送作業。您可以透過 Eventarc Advanced 收集系統中發生的事件,並將事件發布至中央 匯流排。有興趣的服務可以建立註冊,訂閱特定訊息。您可以使用匯流排和管道,即時轉送來自多個來源的事件、將事件發布至多個目的地,並視需要在傳送至目標之前轉換事件。

Eventarc Advanced 適合事件和訊息傳遞需求相當複雜的組織,尤其是為了管理大量 Pub/Sub 主題、Kafka 佇列或其他第三方訊息傳遞系統而費盡心力的組織。Eventarc Advanced 可為管理員提供更進階的集中式瀏覽和控管功能,讓機構連結不同專案的多個團隊。

您可以透過 Google Cloud 主控台、Google Cloud CLI 指令列或 Eventarc API 管理 Eventarc Advanced。

您可以透過 Eventarc Advanced 接收、篩選、轉換、轉送及傳送訊息,
Eventarc Advanced 可讓您在不同服務、應用程式和系統之間接收、篩選、轉換、轉送及傳送訊息
(按一下圖表可放大)。

基本概念

  1. 匯流排可為事件提供可探索的端點,也是一種路由器,可接收供應商發布的所有事件,並將事件傳送至零個或更多目的地。您可以透過匯流排集中管理、監控及追蹤系統中的訊息流程。您可以使用匯流程將事件從多個來源路由至多個目標。

  2. 匯流排收到的訊息會依據註冊條件進行評估,這代表特定匯流排收集事件的訂閱項目。事件會傳送至已訂閱這些特定事件的消費者。註冊後,您可以使用一般運算語言 (CEL) 根據事件屬性比對事件,定義精細的存取權控制政策。註冊作業還可讓您指定要將相符事件傳送至哪個管道。

  3. 管道是匯流排與目的地之間的傳送中介。管道會指定目標目的地,並提供選項,可在將相符的事件傳送至目的地之前先轉換這些事件。它支援多種酬載格式,可讓您處理不同的事件結構,並讓您即時調整事件資料,無須修改來源或目標服務。

主要功能

Eventarc Advanced 支援許多目的地應用程式的用途。其中一些主要功能包括:

  • 大規模應用程式整合:您可以連結多項服務和應用程式,在不同事件格式和結構定義中啟用非同步通訊。

  • AI 和數據分析的事件串流:您可以處理來自 IoT 裝置和 AI 工作負載的資料大量湧入問題,並過濾、轉換及強化事件,再將這些事件饋送至數據分析管道。

  • 混合式雲端與多雲端部署:您可以將事件驅動架構擴展至 Google Cloud以外,並整合在本地端系統和其他雲端供應商。您可以透過 Eventarc Advanced 轉送來自各種來源的事件,包括 Google 來源和事件的直接發布者。

瞭解區域性

Eventarc Advanced 是完全區域性服務:所有 Eventarc Advanced 流量和資料都必須位於同一個區域。舉例來說,註冊和管道只能讀取及處理與公車相同區域的資料。如要支援跨區域,您可以將事件發布至不同區域的不同公車,並在跨越多個區域的服務邊界中設定網路。

專案版面配置

所有 Eventarc 資源都必須屬於 Google Cloud專案。不過,供應者 (事件來源)、中繼 (管理員) 和管道 (事件目標) 不必位於相同專案。

您可以結合使用身分與存取權管理 (IAM) 權限,控制資源使用情形、使用 CEL精細控管資料存取權、針對 HTTP 端點目的地 (包括 Cloud Run 網址) 使用網路附件,以及服務範圍,以支援網路和安全性需求,滿足不同的入站和出站需求。

事件

事件是表示事件及其背景的資料記錄,並指出資源或環境的變更。事件是獨立於其他事件的通訊單位。舉例來說,事件可能表示資料庫中的資料發生變更、檔案新增至儲存系統,或是排程工作。

請注意,事件也是元件在狀態變更時發出的訊息。事件發生時,系統會將訊息傳送至事件基礎架構,供消費者擷取。在事件驅動架構的情況下,我們通常會使用「事件」一詞來指稱用來傳達事件的訊息,而非事件本身 (實際發生的事件,導致產生訊息)。

事件類型

Eventarc Advanced 支援直接來自 Google 來源的事件。

詳情請參閱「Eventarc 支援的 Google 事件類型」。

事件提供者和目的地

Eventarc Advanced 會從事件提供者收集事件,並將事件轉送至事件目的地。每個 Eventarc Advanced 管道只能指定一個目的地,做為轉送訊息的目標。

支援的供應商包括 Google 供應商和事件的直接發布商。支援的目的地包括 Cloud Run、Cloud Run 函式、在虛擬私人雲端網路中代管的 HTTP 端點、工作流程和其他 Eventarc Advanced 匯入器。

詳情請參閱「事件供應程式和目的地」。

事件格式和程式庫

無論提供者為何,Eventarc 都會使用二進位內容模式的 HTTP 要求,以 CloudEvents 格式將事件傳送至目標目的地。CloudEvents 是用來以常用方式描述事件中繼資料的規格。

指定目標目的地 (例如 Cloud Run 函式和 Cloud Run) 會以 HTTP 格式使用事件。針對工作流程目的地,工作流程服務會將事件轉換為 JSON 物件,並將事件做為執行階段引數傳遞至工作流程執行作業。

使用標準方式說明事件中繼資料,可確保一致性、可用性和可移植性。事件使用者可以直接讀取這些事件,也可以使用各種語言 (包括 C++、C#、Go、Java、Node.js、PHP、Python 和 Ruby) 的 Cloud 用戶端程式庫來讀取及剖析事件。另外還有一組特定語言的 CloudEvents SDK

您可以在 Google CloudEvents GitHub 存放區中找到所有事件的 HTTP 主體結構。

可靠性和交付

我們無法保證資料會依序送達,且先進先出。請注意,嚴格排序會破壞 Eventarc 的可用性和可擴充性功能,這些功能與其傳輸層 Pub/Sub 的功能相符。詳情請參閱「排序訊息」。

延遲時間和處理量是盡力而為。這取決於多項因素,包括發布或輸出流量是否涉及不同區域、特定服務的設定,以及 Google Cloud 區域中資源的網路負載。

請注意,Eventarc 一般適用用量配額和限制

事件重試政策

Eventarc Advanced 設定的預設訊息保留時間為 24 小時,並採用指數輪詢延遲機制。

若作業發生錯誤,但可嘗試再次執行,Eventarc Advanced 會使用指數輪詢延遲來處理這類錯誤。這項作業會從 1 秒的延遲時間開始,每次嘗試失敗後,延遲時間會加倍 (最多 60 秒和 5 次嘗試)。

詳情請參閱「重試事件」。

重複事件

事件處理常式可能會收到重複的事件。根據 CloudEvents 規格sourceid 屬性的組合會視為不重複,因此任何具有相同組合的事件都會視為重複。您應實作冪等事件處理常式,這是一般最佳做法。

觀測能力

Google Cloud 觀測功能提供監控、記錄和診斷工具。這些工具可協助您監控及分析 Eventarc 活動和成長情形,並瞭解應用程式的運作情形、健康狀態和效能。詳情請參閱「Eventarc 中的觀測功能」。

您可以透過 Cloud 稽核記錄查看 EventarcCloud RunCloud Run 函式Pub/SubWorkflows 的詳細記錄。

後續步驟