Azure 消息 & 事件服務的選擇 – 下篇,azure ai配音Azure 消息 & 事件服務的選擇 – 下篇在上篇和中篇我們分別對了消息/事件服務中五種類型服務做了介紹和對比,它們包括Storage queue、Service bus queue、Service bus topic、Event Hub和IOT。這......
在上篇和中篇我們分別對了消息/事件服務中五種類型服務做了介紹和對比,它們包括Storage queue、Service bus queue、Service bus topic、Event Hub和IOT。這篇文章我們繼續對剩下的三種服務做介紹,其中Service bus Relay和Notification Hub相比較之前的五種消息服務,有比較大的區別,應用場景和功能也有比價突出的特點,而Event Gird則又是Azure平臺最新推出的一種Serverless服務,接下來我們就這三種服務分別做介紹。
1.Service bus Relay
a.什么是Service bus Relay
在解釋這個問題前,我們可以先想一個問題,假設用戶需要去連接一個運行在防火墻后面的應用有哪些解決方案:
·開啟防火墻的一個端口
·設置VPN從而連接到應用所在的網絡
對于解決方案一,通常我們到拿到本地IT服務的許可才可以。對于方案二,不僅有方案一的問題,還需要考慮基礎設施服務的費用問題,而Azure Service bus Relay提供給用戶更好的第三種選擇。
Azure Service bus Relay是一項用來幫助用戶構建混合集成解決方案的技術,用戶可以通過使用Relay將組織外部的客戶端與組織內部的資源進行連接,從而實現內外應用程序的相互訪問和數據交互。
b.服務特征
Relay是如何工作的:
Relay可以理解為托管在云中的router。用戶的本地服務可以實現“聯機”并打開Service bus Relay上的endpoint,這樣客戶端服務就能訪問該endpoint并發快遞Web調用,Relay將該Web調用router到用戶的本地服務中,從而實現客戶端與本地服務的交互。
下圖顯示了運行在組織外的客戶端如何通過Service bus Relay與組織內的應用程序進行交互:
Azure Relay提供兩種用于連接應用程序和客戶端的方式:
·Hybrid Connection:它是基于標準的Http/WebSocket協議實現的。Hybrid Connection可以在任何具有基本WebSocket功能的平臺上使用任何語言來實現。
·WCF Relay:它是基于Windows Communication Foundation(WCF)的傳統的中繼產品,適用于完整的.NET Framework和WCF架構。用戶通過使用一系列的WCF綁定實現本地和中繼服務間的連接。
下表是Hybrid Connection和WCF Relay間的區別:
c.Service bus queueService bus topic和Service bus Relay的區別:
下面的圖表是對三種服務區別的總結:
下圖展示了三種服務是如何進行消息傳遞:
d.適用場景
基于Service bus Relay的特性,它主要適用于以下場景:
·云端和本地服務之間的通信
·本地的應用程序運行在組織內網,有防火墻隔離的環境中,需要與其他的應用程序(運行在本地或者云端)進行數據交互。
2.Notification Hub
a.什么是Notification Hub
使用移動應用程序的用戶有需求被定期推快遞他們感興趣的內容,而不是定期自己去檢查。因此移動應用開發者在開發程序時需要考慮增加通知推快遞功能。然而在實際的開發過程中,開發者需要考慮推國際快遞多個平臺、定制化的推快遞消息、處理不同版本的應用程序以及擴展性等等問題。
Azure Notification Hub就是幫助開發者簡化這一過程,通過使用Azure Notification Hub開發者可以專注于移動應用端的開發,而不需要開發者處理復雜的后端推快遞。
b.服務特征
Notification Hub為用戶提供了一個可擴展的推快遞通知的基礎架構,可以幫助用戶有效的跨平臺將消息推國際快遞數百萬的終端用戶。
Notification Hub解決的最主要的一個問題是“如何將推快遞通知通過各種各樣的特定平臺的服務傳遞給相應的設備”(例如,Windows Store應用程序只能通過Windows Notification Service(WNS)被推快遞得到通知,而IOS設備只能通過Apple Push Notification service(APNs)被推快遞通知,同樣的,Android設備只能通過Google Cloud Messaging(GCM)被推快遞通知)。另外Notification Hub還提供給用戶以下功能:
i.設備管理:Notification Hub減輕了后端要存儲管理Channel URL以及device token(用于各大推快遞服務推快遞消息)的壓力。Notification Hub會安全可靠的幫用戶存儲處理PNS feedback、device token等信息。
ii.基于tag的多播和pub/sub分發模式:一臺設備在Notification Hub中注冊時可以指定一個或多個tag,用來表示該用戶對某類的通知感興趣。這個功能提供給用戶一個非常簡單的方式,可以通過調用單個API向百萬級別的目標設備端發快遞推快遞通知,而不需要用戶自己考慮如何實現向每臺設備發快遞通知的問題。
iii.Notification Hub提供給用戶基于template發快遞推快遞通知的功能,這樣用戶可以自定義通知的格式、內容等信息,同時也與后端代碼保持獨立。
iv.高度的可擴展性:Notification Hub支持用戶注冊百萬級別的設備,用戶只需要觸發一條推快遞消息到Notification Hub,它會自動將推快遞消息通過推快遞服務以低延遲的性能發國際快遞百萬級別的設備端。
下圖顯示了通過Notification Hub推快遞通知的過程:
c.適用場景
Azure Notification Hub是一種不同類型的消息傳遞服務。它不像上面我們介紹到的消息服務,用于應用程序之間或使用微服務架構來發快遞消息,Azure通知中心可以從任何服務(在Azure,本地或其他地方)向在移動設備(Windows,iOS或Android)上運行的移動端應用程序發快遞推快遞通知。
基于Notification Hub的特性,它的使用場景非常明確,它非常適用于移動應用程序跨手機、平板和PG的消息推快遞場景。
3.Event Grid(目前暫時在中國沒有上線)
a.什么是Event Grid
Event Grid于2018年1月正式上線,是一項比較新的事件傳遞服務,在它使得基于事件的應用架構(如微服務和EventDriven系統)的構建更容易。
Event Grid提供給用戶一種實時、可靠、可擴展且基于事件的應用架構,可用于管理事件路由且可以處理每秒百萬級別的數據吞吐量。
b.服務特征
使用Event Grid時用戶需要指定Source和Event Handdlers/WebHook,Source用于推快遞事件而Handler用于接收事件,Event Grid支持Azure平臺中服務如Storage blob或Event Hub作為Source(數據來源),同時也支持第三方的資源或者用戶使用自定義topic作為Source。用戶可以通過Source將時間發國際快遞某個topic中,而每個topic則可以有多個subscriber/handler。用戶可以在Event Grid上使用filters將特定的event數據安全的路由到一個或者多個endpoint中。
除了以上基本功能之外,Event Grid還提供給用戶以下功能:
i.Event Domains,它允許用戶通過Azure Active Directory對多達數千個topic進行授權和身份管理,此外,Domain還支持partition的處理,換句話說,用戶不需要單獨向每個topic發布事件,而是將事件發布給domain,它可以確保將事件發國際快遞正確的topic。
ii.高級Filter,Event Grid也提供給用戶更強大與Service bus topic的Filter功能,這體現在用戶創建多個類型的Filter,例如數字、字符串、布爾值。這使得用戶對事件的路由控有更好的控制和發揮空間。
iii.管理:用戶可以為Event Grid啟用重試策略和死信隊列功能,也可以檢測匹配和不匹配事件以及每個subscriber上出現的錯誤和延遲。
下圖顯示了Event Grid如何連接Source和Handlers:
c.與Service bus topic的區別
雖然Azure Event Grid也是采用pubsub的模式分發消息并且也有topic的概念,但是這兩個服務是不同的,有如下區別:
i.消息接收模式:Event Grid是push的模式,而Service bus topic是pull的模式。也就是說當用戶使用Service bus topic接收消息時需要管理并控制何時或者接收多少的消息,而使用Event Gird只要handlers保持與Event Gird的連接,事件就會被實時推國際快遞對應的handlers中。也正是因為這點差異,用戶使用Service bus topic更具有靈活性和可控性,如果當接收端接收的速度跟不上發快遞端的速度時,可以先將消息積存在topic服務中,而使用Event Grid用戶需要保證Handler有足夠的能力處理來事件的負載。
ii.吞吐量:Event Grid可以保證每秒鐘千萬級別的的事件量,而這一點是Service bus topic遠遠達不到的。
更多關于Service bus topicEvent Grid的區別,可以參考:官方鏈接。
d.適用場景
i.Serverless架構
作為正真意義上的ServerLess服務,Event Grid可以很好的應用到各種ServerLess架構中,通過使用ServerLess類型的Handler服務(如logic app/function),用戶可以充分利用ServerLess架構的強大功能對事件處理進行高度的擴展。
ii.Enterprise integration
Event Grid提供可靠的事件消息傳遞,包括重試和死信隊列,因此可以保證用戶事件不丟失,這非常好的滿足企業集成方案的需求。
iii.Cloud Events
作為支持CloudEvents標準的首批服務之一,CloudEvents提供了一種允許跨平臺處理事件的標準。隨著Azure,AWS,Google,IBM等各大廠商支持此標準,通過這種方式我們可以使用任何平臺或應用程序來處理事件,實現格式統一,從而輕松實現應用集成和相互操作。
雖然這篇文章盡可能詳細的介紹這幾種不同的消息事件服務的區別和選擇,然而在實際的應用場景中,我們經常會將這幾種服務結合在一起使用并且在不同的應用環境下,根據用戶的考慮因素,產品的選擇也會有不同。如果您通過以上的解釋還是無法抉擇選擇哪種服務,歡迎您聯系Microsoft技術支持團隊,我們會就您的特定的需求和環境幫助您做進一步的分析和抉擇。
特別聲明:以上文章內容僅代表作者本人觀點,不代表ESG跨境電商觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與ESG跨境電商聯系。
二維碼加載中...
使用微信掃一掃登錄
使用賬號密碼登錄
平臺顧問
微信掃一掃
馬上聯系在線顧問
小程序
ESG跨境小程序
手機入駐更便捷
返回頂部