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 和數據分析的事件串流:您可以處理物聯網裝置和 AI 工作負載湧入的資料,並在將事件饋送至分析管道前,先進行篩選、轉換和擴充。
混合和多雲端部署:您可以將事件驅動架構擴展到 Google Cloud以外,並與內部部署系統和其他雲端供應商整合。您可以透過 Eventarc Advanced 轉送來自各種來源的事件,包括 Google 來源和事件的直接發布者。
瞭解區域性
Eventarc Advanced 是完全區域性的服務:所有 Eventarc Advanced 流量和資料都必須位於同一區域。舉例來說,註冊和管道只能讀取及處理與匯流排位於相同區域的資料。如要跨區域支援,請將事件發布至不同區域的不同匯流排,並在跨越多個區域的服務周邊內設定網路。
專案版面配置
所有 Eventarc 資源都必須屬於專案。 Google Cloud不過,供應商 (事件來源)、匯流排 (管理員) 和管道 (事件目標) 不一定要位於相同專案。您也可以在多個專案中,收集及發布 Google 來源的事件。詳情請參閱「從多個專案發布事件」。
您可以搭配使用身分與存取權管理 (IAM) 權限,控管資源用量、透過存取權政策和 CEL 精細控管資料存取權,以及服務範圍,滿足不同出入流量的網路和安全性需求。
活動
事件是表示發生情況及其背景的資料記錄,並指出資源或環境的變更。事件是獨立的通訊單位,與其他事件無關。舉例來說,事件可能表示資料庫中的資料有異動、儲存系統中新增了檔案,或是排定的工作。
請注意,當元件的狀態變更時,也會發出事件。發生事件時,系統會將訊息傳送至事件基礎架構,供消費者擷取。在事件導向架構中,我們通常會使用「事件」一詞來指稱傳達事件的訊息,而非事件本身 (也就是實際發生了什麼事,才會產生訊息)。
事件類型
Eventarc Advanced 支援直接來自 Google 來源的事件。
詳情請參閱「Eventarc 支援的 Google 事件類型」。
事件提供者和目的地
Eventarc Advanced 會從事件提供者收集事件,並轉送至事件目的地。每個 Eventarc Advanced pipeline 只能指定一個目的地,做為轉送訊息的目標。
支援的供應商包括 Google 供應商和活動的直接發布商。 支援的目的地包括 Cloud Run、Cloud Run 函式、虛擬私有雲網路中託管的 HTTP 端點、Pub/Sub 主題、Workflows 和另一個 Eventarc Advanced 匯流排。
詳情請參閱「事件供應商和目的地」。
事件格式和程式庫
無論提供者為何,Eventarc 都會採用二進位內容模式,透過 HTTP 要求以 CloudEvents 格式將事件傳送至目標目的地。CloudEvents 規格用於以通用方式描述事件中繼資料。
Cloud Run 函式和 Cloud Run 等目標目的地會以 HTTP 格式取用事件。如果是 Workflows 目的地,Workflows 服務會將事件轉換為 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 的可觀測性」。
Eventarc、Cloud Run、Cloud Run functions、Pub/Sub 和 Workflows 的詳細記錄可透過 Cloud 稽核記錄 取得。
法規遵循標準
Eventarc 符合這些認證和標準。