選擇 Azure 訊息服務 - 事件方格、事件中樞和服務匯流排

Azure 提供三種服務,協助在整個解決方案中傳遞事件或訊息。 這些服務為:

  • Azure Event Grid
  • Azure 事件中樞
  • Azure 服務匯流排

雖然彼此有一些相似之處,但每個服務皆針對特殊情況所設計。 本文說明這些服務之間的差異,並協助您了解應當為您的應用程式選擇哪一個服務。 在許多情況下,傳訊服務是互補的,而且可以共同使用。

事件與訊息服務

傳遞事件的服務和傳遞訊息的服務之間有一個重要的區別。

事件

事件是狀況或狀態變更的輕量級通知。 事件發行者不會預期事件的處理方式。 事件取用者會決定要如何處理通知。 事件可以是離散單位或系列的一部分。

離散事件會報告狀態變更並可採取動作。 若要採取下一個步驟,取用者只需要知道發生狀況。 事件資料包含所發生事件的資訊,但沒有觸發該事件的資料。 例如,事件會通知取用者檔案已建立。 通知中可能具有關於檔案的一般資訊,但不包含檔案本身。 離散事件非常適合需要調整的無伺服器解決方案。

系列事件會報告狀況且可進行分析。 事件會依時間排序且相互關聯。 取用者需要循序的事件系列,才能分析所發生的狀況。

訊息

訊息是由待取用或儲存在其他地方的服務所產生的未經處理資料。 此訊息包含觸發訊息管線的資料。 訊息的發行者會預期取用者處理訊息的方式。 兩端之間有合約存在。 例如,發行者會傳送包含未經處理資料的訊息,並預期取用者從該資料建立檔案並且在工作完成時傳送回應。

Azure Event Grid

Event Grid 是可供進行回應式事件導向程式設計的事件背板。 其使用發行 - 訂閱模型。 發行者發出事件,但沒有預期要如何處理事件。 訂閱者會決定要處理的事件。

Event Grid 不僅與 Azure 服務緊密整合,並可與第三方服務整合。 它可簡化事件取用,並且無須不斷輪詢來降低成本。 Event Grid 有效且可靠地從 Azure 和非 Azure 資源中路由事件。 其會將事件發佈至已註冊的訂閱者端點。 事件訊息中具有您必須對服務和應用程式中的變更做出回應的資訊。 事件方格不是資料管線,因此並不會傳遞已更新的實際物件。

其具有下列特性:

  • 可動態縮放
  • 低成本
  • 無伺服器
  • 至少傳遞一次事件

事件方格提供兩種版本:Azure 事件方格 (Azure 上完全受控的 PaaS 服務) 以及具有 Azure Arc 的 Kubernetes 上的事件方格,可讓您在 Kubernetes 叢集上使用事件方格,無論部署在內部部署或雲端。 如需詳細資訊,請參閱 Azure 事件方格概觀具有 Azure Arc 的 Kubernetes 上的事件方格概觀

Azure 事件中樞

事件中樞是一種大型資料串流平台與事件擷取服務。 它每秒可接收和處理數百萬個事件。 它有助於擷取、保留和重送遙測和事件串流資料。 資料可來自許多並行來源。 事件中樞可將遙測和事件資料提供給各種串流處理基礎結構和分析服務使用。 這些資料可當成資料流或配套的事件批次使用。 此服務提供單一解決方案,可啟用快速資料擷取以供即時處理,也可重複重送所儲存的未經處理資料。 它可以將串流資料擷取到檔案中,以進行處理及分析。

其具有下列特性:

  • 低延遲
  • 每秒可接收和處理數百萬個事件
  • 至少傳遞一次事件

如需詳細資訊,請參閱事件中樞概觀

Azure 服務匯流排

服務匯流排是完全受控的企業訊息代理程式,具有訊息佇列和發佈-訂閱主題。 此服務適用於需要交易、排序、重複偵測和瞬間一致性的企業應用程式使用。 服務匯流排可讓雲端原生應用程式提供可靠的狀態轉換管理以供業務處理使用。 要處理不可遺失或重複的高價值訊息時,請使用 Azure 服務匯流排。 此服務也可以協助混合式雲端解決方案之間高度安全的通訊,並可將現有的內部部署系統連接到雲端解決方案。

服務匯流排是代理傳訊系統。 它可將訊息儲存在「訊息代理程式」(例如,佇列) 中,直到取用方準備接收這些訊息為止。 其具有下列特性:

  • 需要輪詢之可靠的非同步訊息傳遞 (企業傳訊即服務)
  • 進階傳訊功能,例如先進先出 (FIFO)、批次處理/工作階段、交易、無效信件處理、暫存控制項、路由和篩選,以及重複偵測
  • 至少傳遞一次訊息
  • 訊息的選用排序傳遞

如需詳細資訊,請參閱服務匯流排概觀

服務比較

Service 目的 類型 使用時機
事件方格 回應式程式設計 事件散發 (離散) 回應狀態變更
事件中樞 巨量資料管線 事件串流 (系列) 遙測和分散式資料流
服務匯流排 高價值的企業傳訊 訊息 訂單處理和財務交易

一起使用服務

在某些情況下,您可以同時使用這些服務以滿足不同角色。 例如,電子商務網站可以使用服務匯流排來處理訂單,使用事件中樞來擷取站台遙測,使用事件方格來回應事件 (例如運送項目)。

在其他情況,也可將各種服務連結在一起以形成事件和資料管線。 可以使用 Event Grid 來回應其他服務中的事件。 如需搭配事件中樞使用事件方格將資料移轉至 Azure Synapse Analytics 的範例,請參閱將巨量資料串流至 Azure Synapse Analytics。 下圖顯示串流資料的工作流程。

此圖片顯示如何將事件中樞、服務匯流排及事件方格連結在一起。

後續步驟

查看下列文章: