Eventarc 可讓您建構事件導向和訊息導向的架構,不必實作、自訂或維護底層基礎架構。
Eventarc 提供兩種版本:Eventarc Advanced 和 Eventarc 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。
(按一下圖表即可放大)。
基本概念
匯流排會提供可探索的事件端點,並做為路由器,接收提供者發布的所有事件,然後將事件傳送至零或多個目的地。透過匯流排,您可以集中管理、監控及追蹤系統中的訊息流程。您可以透過匯流排,將多個來源的事件傳送至多個目標。
系統會根據註冊條件評估送達匯流排的訊息,註冊項目代表特定匯流排收集的事件訂閱項目。系統會將事件轉送給已訂閱這些特定事件的消費者。註冊後,您可以使用一般運算語言 (CEL),根據事件屬性比對事件,定義精細的存取權控管政策。註冊時,您也可以指定要將相符事件傳送至哪個管道。
管道是匯流排與目的地之間的傳送中介。管道會指定目標目的地,並提供選項,讓您先轉換相符的事件,再將其傳送至目的地。支援多個酬載格式,並可讓您即時調整事件資料,不必修改來源或目標服務,輕鬆處理不同的事件結構。
主要功能
Eventarc Advanced 支援許多目的地應用程式的用途。主要功能包括:
大規模整合應用程式:您可以連結多種服務和應用程式,在不同事件格式和結構定義之間進行非同步通訊。
AI 和數據分析的事件串流:您可以處理來自 IoT 裝置和 AI 工作負載的大量資料,並在將事件饋送至數據分析管道之前,先進行篩選、轉換和擴充。
混合式和多雲端部署:您可以將事件驅動架構擴展到 Google Cloud以外,與地端系統和其他雲端供應商整合。您可以透過 Eventarc Advanced 轉送來自各種來源的事件,包括 Google 來源和事件的直接發布者。
瞭解區域性
Eventarc Advanced 是完全區域性的服務:所有 Eventarc Advanced 流量和資料都必須位於同一區域。舉例來說,註冊和管道只能讀取及處理與匯流排位於相同區域的資料。如要跨區域支援,請將事件發布至不同區域的不同匯流排,並在跨多個區域的服務邊界內設定網路。
專案版面配置
所有 Eventarc 資源都必須屬於專案。 Google Cloud不過,供應商 (事件來源)、匯流排 (管理員) 和管道 (事件目標) 不一定要位於同一個專案。
您可以搭配使用身分與存取權管理 (IAM) 權限,控管資源用量、使用 CEL 精細存取資料,以及服務範圍,支援不同出入流量需求的網路和安全性規定。
活動
事件是記錄發生情況和相關背景的資料記錄,表示資源或環境發生變化。事件是獨立的通訊單位,與其他事件無關。舉例來說,事件可能表示資料庫中的資料有異動、儲存系統中新增了檔案,或是排定的工作。
請注意,事件也是元件在狀態變更時發出的訊息。發生事件時,系統會將訊息傳送至事件基礎架構,供消費者擷取。在事件導向架構中,我們通常會使用「事件」一詞來指稱傳達事件的訊息,而非事件本身 (也就是實際發生了什麼事,才會產生訊息)。
事件類型
Eventarc Advanced 支援直接來自 Google 來源的事件。
詳情請參閱「Eventarc 支援的 Google 事件類型」。
事件提供者和目的地
Eventarc Advanced 會從事件提供者收集事件,並將事件轉送至事件目的地。每個 Eventarc Advanced pipeline 只能指定一個目的地,做為轉送訊息的目標。
支援的供應商包括 Google 供應商和活動的直接發布商。 支援的目的地包括 Cloud Run、Cloud Run functions、虛擬私有雲網路中託管的 HTTP 端點、Workflows,以及另一個 Eventarc Advanced 匯流排。
詳情請參閱「事件供應商和目的地」。
事件格式和程式庫
無論提供者為何,Eventarc 都會採用二進位內容模式,透過 HTTP 要求以 CloudEvents 格式將事件傳送至目標目的地。CloudEvents 規格可採用通用方式說明事件中繼資料。
Cloud Run functions 和 Cloud Run 等目標目的地會以 HTTP 格式取用事件。如果是工作流程目的地,工作流程服務會將事件轉換為 JSON 物件,並將事件當做執行階段引數傳遞至工作流程執行作業。
使用標準方式描述事件中繼資料,有助於確保一致性、無障礙和可攜性。事件消費者可以直接讀取這些事件,也可以使用各種語言 (包括 C++、C#、Go、Java、Node.js、PHP、Python 和 Ruby) 的 Cloud 用戶端程式庫讀取及剖析事件。此外,還有多種語言專屬的 CloudEvents SDK。
如要瞭解所有事件的 HTTP 內文結構,請參閱 Google CloudEvents GitHub 存放區。
可靠性與傳送
我們無法保證訊息會依序送達,也無法保證會依先進先出原則傳送訊息。請注意,嚴格排序會破壞 Eventarc 的可用性和可擴充性功能,這些功能與傳輸層 Pub/Sub 的功能相符。詳情請參閱「訊息排序」。
延遲時間和輸送量會盡可能達到最佳狀態,這些費用會因多種因素而異,包括發布或輸出流量是否涉及不同區域、特定服務的設定,以及 Google Cloud 區域中資源的網路負載。
請注意,Eventarc 一般有用量配額和限制。
事件重試政策
Eventarc Advanced 預設的訊息保留時間為 24 小時,並採用指數輪詢延遲。
若作業發生錯誤,但可嘗試再次執行,Eventarc Advanced 會使用指數輪詢延遲來處理這類錯誤。一開始會延遲一秒,每次嘗試失敗後,延遲時間會加倍 (最多 60 秒,最多嘗試 5 次)。
詳情請參閱「重試事件」。
重複的活動
系統可能會將重複事件傳送至事件處理常式。根據 CloudEvents 規格,source
和 id
屬性的組合視為不重複,因此任何具有相同組合的事件都會視為重複事件。一般而言,最佳做法是導入等冪事件處理常式。
觀測能力
Google Cloud Observability 提供監控、記錄和診斷工具。這些工具可協助您監控及分析 Eventarc 活動和成長,並瞭解應用程式的運作情形、健康狀態和效能。詳情請參閱「Eventarc 的可觀測性」。
您可以在 Cloud 稽核記錄中查看 Eventarc、Cloud Run、Cloud Run functions、Pub/Sub 和 Workflows 的詳細記錄。
法規遵循標準
Eventarc 符合這些認證和標準。