Azure提供三種協(xié)助在整個(gè)解決方案中傳遞事件消息的服務(wù)。這些服務(wù)分別為:
事件網(wǎng)格
事件中心
服務(wù)總線
雖然它們有一些相似之處,但是每種服務(wù)都旨在針對(duì)特定的場(chǎng)景。本文介紹這些服務(wù)之間的區(qū)別,并幫助你選擇最適合你應(yīng)用程序的服務(wù)。在許多情況下,消息傳遞服務(wù)是互補(bǔ)的,可以一同使用。
事件與消息服務(wù)
傳遞事件的服務(wù)與傳遞消息的服務(wù)之間有一個(gè)需要注意的重要區(qū)別。
事件
事件是條件或狀態(tài)更改的輕量通知。事件發(fā)布者對(duì)于如何處理事件沒有期望。事件使用者決定要對(duì)通知執(zhí)行的操作。事件可以是離散單元或一系列的一部分。
離散事件報(bào)告狀態(tài)更改,并可操作。若要執(zhí)行下一步,使用者只需知道發(fā)生了問題。事件數(shù)據(jù)包含關(guān)于所發(fā)生事件的信息,但不包含觸發(fā)事件的數(shù)據(jù)。例如,事件會(huì)通知使用者文件已創(chuàng)建。它可能包含文件的常規(guī)信息,但不包含文件本身。離散事件非常適合于需要縮放的無服務(wù)器解決方案。
系列事件報(bào)告情況,并且可分析。事件按時(shí)間排序并彼此相關(guān)。使用者需要排序的一系列事件以分析發(fā)生的情況。
消息
消息是由將使用的服務(wù)生成或存儲(chǔ)在其他位置的原始數(shù)據(jù)。消息包含觸發(fā)消息管道的數(shù)據(jù)。消息發(fā)布者對(duì)于使用者如何處理消息有期望。雙方之間存在協(xié)定。例如,發(fā)布者發(fā)送一條包含原始數(shù)據(jù)的消息,并期望使用者基于該數(shù)據(jù)創(chuàng)建文件且在工作完成后發(fā)送響應(yīng)。
服務(wù)對(duì)比:
事件網(wǎng)格
事件網(wǎng)格是啟用事件驅(qū)動(dòng)、反應(yīng)編程的事件底板。它使用發(fā)布-訂閱模式。發(fā)布服務(wù)器發(fā)出事件,但不知道處理哪些事件。訂閱服務(wù)器決定需要處理的事件。
事件網(wǎng)格與Azure服務(wù)深度集成,并可與第三方服務(wù)集成。它簡化事件消耗,并通過消除不斷的輪詢需求降低成本。事件網(wǎng)格高效可靠地路由來自Azure和非Azure資源的事件。它將事件分布到注冊(cè)的訂閱服務(wù)器終結(jié)點(diǎn)。事件消息包含對(duì)服務(wù)和應(yīng)用程序中的更改做出響應(yīng)所需的信息。事件網(wǎng)格不是數(shù)據(jù)管道,并且不提供已更新的實(shí)際對(duì)象。
對(duì)于不提交到終結(jié)點(diǎn)的事件,事件網(wǎng)格支持死信功能。
它具有以下特征:
動(dòng)態(tài)可縮放
低成本
無服務(wù)器
“至少一次”交付
事件中心
Azure事件中心是大數(shù)據(jù)管道。它促進(jìn)遙測(cè)數(shù)據(jù)和事件流數(shù)據(jù)的捕獲、保留和重播。數(shù)據(jù)可能來自多個(gè)并發(fā)源。事件中心允許提供遙測(cè)數(shù)據(jù)和事件數(shù)據(jù)給多種流式處理基礎(chǔ)結(jié)構(gòu)和分析服務(wù)。它作為數(shù)據(jù)流或捆綁事件批提供。此服務(wù)提供一種可實(shí)現(xiàn)快速數(shù)據(jù)檢索以進(jìn)行實(shí)時(shí)處理及重復(fù)重播所存儲(chǔ)原始數(shù)據(jù)的解決方案??梢詫⒘鲾?shù)據(jù)捕獲到一個(gè)文件中以進(jìn)行處理和分析。
它具有以下特征:
低延遲
每秒可以接收和處理數(shù)百萬的事件
“至少一次”交付
服務(wù)總線
服務(wù)總線適用于傳統(tǒng)企業(yè)應(yīng)用程序。這些企業(yè)應(yīng)用程序需要事務(wù)、排序、重復(fù)檢測(cè)和即時(shí)一致性。服務(wù)總線使得云原生應(yīng)用程序能夠?yàn)闃I(yè)務(wù)進(jìn)程提供可靠的狀態(tài)轉(zhuǎn)換管理。處理不能丟失或復(fù)制的高價(jià)值消息時(shí),請(qǐng)使用Azure服務(wù)總線。服務(wù)總線還利于跨混合云解決方案的高度安全通信,并且可以將現(xiàn)有本地系統(tǒng)連接到云解決方案。
服務(wù)總線是一個(gè)中轉(zhuǎn)消息傳送系統(tǒng)。它將消息存儲(chǔ)在“中轉(zhuǎn)站”(例如隊(duì)列)中,直到使用方準(zhǔn)備好接收這些消息。
它具有以下特征:
需要輪詢的可靠異步消息傳遞(企業(yè)消息傳遞作為服務(wù))
高級(jí)消息傳遞功能,例如,F(xiàn)IFO、批處理/會(huì)話、事務(wù)、死信、時(shí)態(tài)控制、路由和篩選以及重復(fù)檢測(cè)
“至少一次”交付
可選的按序交付
同時(shí)使用多種服務(wù)
在某些情況下,可同時(shí)使用多種服務(wù)滿足不同的角色。例如,電子商務(wù)網(wǎng)站可以使用服務(wù)總線處理訂單,使用事件中心捕獲站點(diǎn)遙測(cè)數(shù)據(jù),使用事件網(wǎng)格響應(yīng)事件(例如商品已發(fā)貨)。
在其他情況下,可將它們鏈接在一起以形成事件和數(shù)據(jù)管道。使用事件網(wǎng)格可響應(yīng)其他服務(wù)中的事件。有關(guān)結(jié)合使用事件網(wǎng)格和事件中心以將數(shù)據(jù)遷移到數(shù)據(jù)倉庫的實(shí)例,請(qǐng)參閱將大數(shù)據(jù)流式傳輸?shù)綌?shù)據(jù)倉庫。下圖顯示流式處理數(shù)據(jù)的工作流。