譯者 | 布加迪
數據在急劇增多。全球每天生成的數據量三年后將達到463 EB。相比之下,人類迄今生成的所有單詞量估計總共也就5 EB。
為了在當今的數字經濟下取得成功,許多企業在實施戰略以使用和分析所有這些數據,以便實時做出正確的業務決策。據估計,到2025年,每個聯網人員的平均每日數字交互次數將達到5000次。企業需要能夠滿足這種對實時數據、流程和用戶體驗日益增長的需求。
一種策略是使用事件驅動架構。事件驅動架構是一種軟件設計模式,它讓企業可以針對客戶交易等業務事件進行實時操作。事件驅動架構不是什么新概念,自1970年代就以來一直存在了。直到最近,這項技術才真正為企業和消費者提供實時服務。
事件驅動架構現在備受關注,能夠解決現代業務問題,提供出眾的消費者體驗。
一、事件驅動架構的工作原理及好處
事件驅動架構基于事件,向相關方發出業務系統發生狀態變化的信號。比如說,事件可以是在線購買、產品發貨或產品送到客戶家門口。事件在所有行業都在不斷發生。
事件驅動架構中有生產者和消費者。生產者觸發事件,而事件通過事件頻道作為消息被發送給感興趣的消費者,事件在事件頻道中被異步處理。生產者和消費者不必等待對方即可開始下一個任務,因為生產者與接收者松散耦合或完全解耦。
由于分離了通信和業務邏輯,解耦還提高了可擴展性。如果訂閱者離線或消費減慢速度,發布者可以避免瓶頸并且不受影響。如果訂閱者難以跟上事件的步伐,事件流會記錄事件供將來檢索。發布者可以繼續發送通知而不受吞吐量限制,并且有很強的故障恢復能力。
發布/訂閱(pub/sub)是事件驅動架構中的一種常見設計模式,它為發布者和訂閱者之間交換消息提供了一種框架。消息代理接收發布者的所有事件,并將發生的事件實時路由到訂閱者,即注冊接收事件的那些人。代理還記錄事件。消費者可隨時訪問事件流,它們可以讀取最新的消息,或處理自上次檢查事件流以來收到的一系列消息。
如果使用消息代理,發布者不知道訂閱者,即使感興趣的有關方數量增加,發布者也不會受到影響。發布到代理讓生產者有機會跨不同的設備和平臺向一系列消費者傳遞通知。
二、實施事件驅動架構面臨的挑戰
將功能做入到應用程序中以提供大規模實時體驗有風險、很復雜、很費錢、很費時。組織最初可能會花費數月時間用現成的組件搭建定制的解決方案。隨著團隊需要應對規模和可靠性要求帶來的復雜性,所需的時間很可能變成數年。
許多應用程序依賴一系列相互依賴的消息。然而,如果這些消息丟失或無序,會影響用戶體驗,并且客戶數據在此過程中可能受損或丟失。提供具有數據完整性的實時數字體驗所需的技術很復雜,并且常常導致不可接受的取舍,比如公司為了數據完整性而犧牲大規模性能。
還有性能問題。設計、構建和擴展實時功能時,延遲不佳或不可預測、高帶寬消費方面的問題會給應用程序開發人員帶來不確定性。除了盡量降低延遲和帶寬要求外,組織還必須盡量避免這些措施方面的差異,為開發人員提供可預測性,確保交付的體驗具有競爭力。組織也很難設計、構建和運營自己的全球分布式容錯實時基礎架構。為了實現容錯,組織需要在多個數據中心擁有多個冗余部件,以便其他部件丟失時保持系統正常運行。
組織開始擴展時,要么獲得構建基礎架構的方式帶來的好處,要么承受帶來的后果。不到位的基礎架構無法擴展,或無法提供滿足客戶實時要求所需的彈性。此外,對于大多數組織而言,為事件驅動架構構建自己的基礎架構只會分散注意力,無法一心開發真正使其產品與眾不同的實時體驗。要做到可以依靠基礎架構提供有競爭力的體驗這地步,就需要團隊招聘許多人,并且培養技能,這可能與業務核心幾乎沒多大相關性。
三、Ably發布/訂閱消息
為了克服這些挑戰,Ably邊緣消息傳遞平臺提供了相應的API,從而使開發人員能夠構建實時通信的應用程序和基礎架構,而組織無需管理規模、延遲、消息完整性或網絡中斷。
任意數量的訂閱設備將實時接收從設備發布到Ably的消息。為此,Ably將消息流量組織到命名頻道中。一旦連接到Ably,客戶端可以是發布者(向Ably推送消息)、訂閱者(等待消息從Ably推送)或兩者兼而有之。雖然Ably可能會傳遞數十億條消息,但訂閱者只會在它們訂閱的頻道上收到消息。
頻道提供了一種實現發布/訂閱模式的方法,允許發布者快速有效地將數據推送給訂閱者。新數據被推送給訂閱者,那樣它們不必輪詢服務器即可檢查新數據。
Ably的存在(presence)功能讓客戶端可以在頻道上宣布其存在。存在功能使開發人員能夠構建聊天室、多人游戲或協作工具等協作應用,因為Ably可自動跟蹤誰在任何設備上實時存在。頻道上存在的每個成員都有唯一的客戶端標識符和可選的有效負載以描述成員的狀態,比如進入頻道、更新狀態或離開頻道。其他設備或服務實時訂閱這些存在事件。
Ably是一個全球分布式系統,頻道可以在多個區域獨立活躍,從而不會出現單一故障點或擁塞點。
下圖說明了Ably如何解決高效全球路由的挑戰:
圖1
紐約的發布者專用服務器使用基于延遲的路由被路由到最近的數據中心(US East)。發布到US East的消息A被路由到US East的客戶端,并且一次被路由到托管訂閱這些消息的客戶端的其他每個數據中心。所有其他區域的訂閱客戶端將從它們連接的數據中心接收消息。
倫敦的發布者和訂閱者客戶端使用基于延遲的路由被路由到最近的數據中心(EU West)。發布到EU West的消息B被路由到EU West的訂閱客戶端,并且一次被路由到托管訂閱這些消息的客戶端的其他每個數據中心。所有其他區域的訂閱客戶端從它們連接的數據中心接收消息B。
四、實時體驗的未來
數字體驗正在經歷一場實時革命。消費者要求數字體驗是即時的。因此,組織必須實時同步數據。隨著更多的設備上線,企業調整以適應更復雜的實時數據經濟,它們需要更簡單、更可靠的基礎架構,以滿足當今和未來的實時數據同步需求,到時日常服務將依靠不斷變化的數據。
原文鏈接:https://www.infoworld.com/article/3669414/the-benefits-and-challenges-of-event-driven-architecture.html
來源: 51CTO技術棧