選擇 Azure 訊息服務 - 事件方格、事件中樞和服務匯流排
Azure 提供三種服務,協助在整個解決方案中傳遞事件或訊息。 這些服務包括:Azure 事件方格、Azure 事件中樞、Azure 服務匯流排。
雖然它們有一些相似之處,但每個服務都是針對特定案例所設計。 本文說明這些服務之間的差異,並協助您了解應當為您的應用程式選擇哪一個服務。 在許多情況下,訊息服務是互補的,且可以一起使用。
事件與訊息
傳遞事件的服務和傳遞訊息的服務之間有一個重要的區別。
Event
事件是情況或狀態變更的輕量型通知。 事件的發行者對事件的處理方式並無期望。 事件的取用者會決定如何處理通知。 事件可能是離散單元或系列的一部分。
離散事件會報告狀態變更,並且是可採取動作的。 若要採取下一個步驟,取用者只需要知道發生什麼事。 事件資料具有所發生事件的相關資訊,但沒有觸發事件的資料。 例如,事件會通知取用者已建立檔案。 通知中可能具有關於檔案的一般資訊,但不包含檔案本身。 離散事件非常適合需要調整的無伺服器解決方案。
系列事件會報告狀況且可進行分析。 事件以時間排序且相互關聯。 取用者需要循序的一系列事件來分析所發生的情況。
訊息
訊息是由服務為了取用或儲存在其他地方所產生的原始資料。 訊息包含觸發訊息管線的資料。 訊息的發行者對於取用者如何處理訊息具有預期。 雙方之間存在合約。 例如,發行者會傳送含有原始資料的訊息,並預期取用者會從該資料建立檔案,並在工作完成時傳送回應。
現在,讓我們快速檢閱一下什麼是 Azure 事件方格、Azure 事件中樞和 Azure 服務匯流排。
事件格線
Azure 事件方格是高度可調整且完全受控的 Pub Sub 訊息散發服務,可使用訊息佇列遙測傳輸 (MQTT) 和 HTTP 通訊協定提供彈性的訊息使用量模式。 透過 Azure 事件方格,您可以使用裝置資料建置資料管線、整合應用程式,以及建置事件驅動的無伺服器結構。
此服務會提供可實現回應式事件導向程式設計的事件骨幹。 其使用發行 - 訂閱模型。 發行者發出事件,但沒有預期要如何處理事件。 訂閱者會決定要處理的事件。
Azure 事件方格不僅與其他 Azure 服務緊密整合,並可與第三方服務整合。 它會藉由消除常數輪詢的需求,簡化事件取用量並降低成本。 事件方格有效率且可靠地從 Azure 和非 Azure 資源路由傳送事件。 它會將事件散發給已註冊的訂閱者端點。 事件訊息具有回應服務和應用程式中變更所需的資訊。
其具有下列特性:
- 可動態縮放
- 低成本
- 無伺服器
- 至少傳遞一次事件
事件方格提供兩種版本:Azure 事件方格 (Azure 上完全受控的 PaaS 服務) 以及具有 Azure Arc 的 Kubernetes 上的事件方格,可讓您在 Kubernetes 叢集上使用事件方格,無論部署在內部部署或雲端。 如需詳細資訊,請參閱 Azure 事件方格概觀及具有 Azure Arc 的 Kubernetes 上的事件方格概觀。
Azure 事件中樞
Azure 事件中樞是一個巨量資料串流平台與事件擷取服務。 它每秒可接收和處理數百萬個事件。 它有助於擷取、保留及重新執行遙測和事件資料流資料。 資料可能來自許多並行來源。 事件中樞可將遙測和事件資料提供給各種串流處理基礎結構和分析服務使用。 這些資料可當成資料流或配套的事件批次使用。 此服務提供單一解決方案,可啟用快速資料擷取以供即時處理,也可重複重送所儲存的未經處理資料。 它可以將串流資料擷取到檔案中進行處理和分析。
其具有下列特性:
- 低延遲
- 每秒可接收和處理數百萬個事件
- 至少傳遞一次事件
如需詳細資訊,請參閱事件中樞概觀。
Azure 服務匯流排
服務匯流排是完全受控的企業訊息代理程式,具有訊息佇列和發佈-訂閱主題。 此服務適用於需要交易、排序、重複偵測和瞬間一致性的企業應用程式使用。 服務匯流排可讓雲端原生應用程式為商務程序提供可靠的狀態轉換管理。 要處理不可遺失或重複的高價值訊息時,請使用 Azure 服務匯流排。 此服務也可以協助混合式雲端解決方案之間高度安全的通訊,並可將現有的內部部署系統連接到雲端解決方案。
服務匯流排是代理傳訊系統。 它會將訊息儲存在「訊息代理程式」(例如佇列) 中,直到取用方準備好接收訊息為止。 其具有下列特性:
- 需要輪詢之可靠的非同步訊息傳遞 (企業傳訊即服務)。 如果您使用 Azure 服務匯流排,而且您需要不必輪詢佇列即可接收訊息,則可以使用 Azure 服務匯流排支援的 TCP 型通訊協定,透過長輪詢接收作業來達成此目的。
- 進階傳訊功能,例如先進先出 (FIFO)、批次處理/工作階段、交易、無效信件處理、暫存控制項、路由和篩選,以及重複偵測
- 至少傳遞一次訊息
- 訊息的選用排序傳遞
如需詳細資訊,請參閱服務匯流排概觀。
服務比較
下表比較這三個服務:Azure 事件方格、Azure 事件中樞和 Azure 服務匯流排。
服務 | 目的 | 類型 | 使用時機 |
---|---|---|---|
Event Grid | 回應式程式設計 | 事件散發 (離散事件) | 回應狀態變更 |
事件中樞 | 巨量資料管線 | 事件資料流 (系列) | 遙測和分散式資料流 |
服務匯流排 | 高價值的企業傳訊 | 訊息 | 訂單處理和財務交易 |
一起使用服務
在某些情況下,您可以同時使用這些服務以滿足不同角色。 例如,電子商務網站可以使用服務匯流排來處理訂單,使用事件中樞來擷取站台遙測,使用事件方格來回應事件 (例如運送項目)。
在其他情況,也可將各種服務連結在一起以形成事件和資料管線。 可以使用 Event Grid 來回應其他服務中的事件。 如需搭配事件中樞使用事件方格將資料移轉至 Azure Synapse Analytics 的範例,請參閱將巨量資料串流至 Azure Synapse Analytics。 下圖顯示串流資料的工作流程。
相關內容
請參閱以下文章: