成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

EDA 事件驅動架構與 EventBridge 二三事

網絡
EDA 事件驅動架構( Event-Driven Architecture ) 是一種系統架構模型,它的核心能力在于能夠發現系統“事件”或重要的業務時刻(例如交易節點、站點訪問等)并實時或接近實時地對相應的事件采取必要行動。

當下比較成功的企業已然認識到,要想最大限度提升運營效率和客戶體驗,務必將業務和技術兩方面的舉措緊密結合起來。運營事件或業務形勢的變化是時下眾多企業關注的焦點,這些變化能夠為企業領導者帶來切實有用的信息,而架構設計的主旨恰恰是從客戶聯系人、交易、運營等方面的信息中獲取洞見,兩者相輔相成。傳統技術歷來對企業從事件中獲取洞見的速度有著諸多限制,比如用于記錄、收集和處理此類事件的批處理 ETL(提取、轉換、加載)。

事件驅動型架構 (EDA) 方興未艾,作為一種 Serverless 化的應用概念對云原生架構具有著深遠影響。當我們討論到一個具體架構時,首當其沖的是它的發展是否具有技術先進性。這里從我們熟悉的 MVC 架構,SOA 架構談起,聊一聊關于消息事件領域的歷史與發展趨勢。

消息事件領域的發展趨勢

早在 2018 年,Gartner 評估報告將 Event-Driven Model 列為 10 大戰略技術趨勢之一,事件驅動架構(EDA)將成為未來微服務的主流,并做出以下斷言:

到 2022 年,事件通知的軟件模型將成為超過 60% 的新型數字化商業的解決方案;
到 2022 年,超過 50% 的商業組織將參與到事件驅動的數字化商業服務的生態系統當中;
George Santayana 在《 The Life of Reason》曾提到, Those who fail to learn History are doomed to repeat it.(不懂歷史的人注定會重蹈覆轍)。我們以史為鑒,來看看為什么會架構會演進到事件驅動。

架構本身沒有優劣之分,它本身就是一組技術決策,決定后續項目的所有功能開發(框架,編碼規范,文檔,流程….),這里聊聊為什么會引入某些框架,這個框架解決了軟件開發中的什么問題。

單體架構:在單節點服務中,單體應用的所有模塊都封裝在單個進程運行,通信通過相同堆棧調用完成。這種模式下非常容易導致結構和關系不明確,難以對系統進行更改和重構。就像一個不透明的,粘稠的,脆弱的,僵硬的 Big Ball of Mud!
分層架構:在經典的分層架構中,層以相當謹慎的方式使用。即一個層只能知道它下方層的數據。在隨后的實際應用中,更多的方式是一個層可以訪問它下面的任何層。分層架構解決了單體架構的的邏輯分離問題,每一層都可以被等效替換,層區分也更加標準化,同時一個層可以被幾個不同/更高級別的層使用。當然,層也有比較明顯的缺點,層不能封裝掉一切,比如添加到UI的某個字段,可能也需要添加到DB,而且額外多余的層會嚴重損害系統性能。
MVC 架構:MVC 架構產生的原因其實很簡單,隨著業務系統的復雜性增加,之前所謂“全棧工程師”已經不適用大部分場景。為了降低前端和后臺的集成復雜性,故而開始推廣 MVC 架構。其中,Model 代表業務邏輯,View 代表視圖層比如前端UI的某個小組件,Controller 提供 View 和 Model 的協調比如將用戶某項操作轉為業務邏輯等。這里還有很多擴展架構,譬如 Model-View-Presenter ,Model-View-Presenter-ViewModel,Resource-Method-Representation,Action-Domain-Responder 。
EBI 架構:即 Entity,Boundary(接口),Interactor(控制)。EBI架構將系統邊界視為完整連接,而不僅僅是視圖,控制器或接口。EBI 的實體代表持有數據并結束相關行為的實際實體,很類似阿里云的 POP API。EBI 主要還是后端概念,他是與 MVC 相輔相成的。
洋蔥架構:洋蔥架構是一種低耦合,高內聚的架構模型。所有的應用程序圍繞獨立的對象模型構建,內層定義接口外層實現接口,耦合方向向中心內聚,所有代碼都可以獨立與基礎設施進行編譯和運行。
SOA 架構:SOA 是 Service Orientated Architure 的縮寫,即面向服務架構。表示每一個功能都是通過一個獨立的服務來提供,服務定義了明確的可調用接口,服務之間的編排調用完成一個完整的業務。其實這個架構也是目前架構中最成熟的,日常使用最多的架構模式。

什么是 EDA 架構

我們聊完之前全部的架構趨勢后,再回過頭看看什么是 EDA 架構。

EDA 事件驅動架構( Event-Driven Architecture ) 是一種系統架構模型,它的核心能力在于能夠發現系統“事件”或重要的業務時刻(例如交易節點、站點訪問等)并實時或接近實時地對相應的事件采取必要行動。這種模式取代了傳統的“ request/response ”模型,在這種傳統架構中,服務必須等待回復才能進入下一個任務。事件驅動架構的流程是由事件提供運行的。

上圖其實很好的解釋了 EDA 架構的模型,但是其實還不夠明確。所以,這里我們和單體架構一起對比看看他們之間差異。

在如上對比圖中,我們其實可以較為清楚看到它與傳統架構的區別。在一般傳統架構中,創建訂單操作發生后,一系列的操作其實都是通過一個系統完成的。而事件驅動的概念則是將全部操作都轉換為 “事件” 概念,下游通過捕獲某個 “事件” 來決定調用什么系統完成什么樣的操作。

總結來看,事件驅動其實是將比較重要的業務時刻封裝成“事件”,并通過某個 EventBus 將事件路由給下游系統。

我們了解了 EDA 架構的整個處理過程,但是還沒解決這個所謂的“EventBUS”到底是啥樣。

上圖就是事件驅動的核心邏輯架構。是不是非常像某個傳統 MQ?別著急,下面我會講到這個架構的復雜部分。講完 EventBus,我們回過頭來看“事件”,剛剛介紹中比較重要部分其實是將操作轉換為某類事件進行分發。那這的事件我們怎么定義呢?

簡單來看,其實事件就是狀態的顯著變化,當用戶采取特定行動時觸發。以 4S 店售賣汽車為例:

當客戶購買汽車并且其狀態從 For Sale 變為 Sold 是一個事件。
成功交易后,從帳戶中扣除金額是一個事件。
單擊預訂試駕后,從將預約信息添加到指定用戶就是一個事件。
每個事件都可能觸發一個或多個選項作為響應。

關于事件其實云原生 CNCF 基金會在 2018 年托管了開源 CloudEvents 項目,該項目旨在用統一和規范的格式來描述事件,來加強不同的服務、平臺以及系統之間的互操作性。在該項目定義下,通用的事件規范是這樣的:

事件主要由 Json 體構成,通過不同字段描述發生的事件。

EDA 架構的落地實踐思考

在開始介紹落地實踐時,我們先來看一個經典的 EDA 架構模型:

這是一個非常經典 EDA 訂單架構,該架構主要使用了 EventBridge 和 FC 函數計算(如果不太熟悉 FaaS 的同學可以把 FC 節點當作 ECS 或 K8s 的某個 POD 節點),通過事件驅動各個業務進行協作。

所以這塊的中心節點(EventBridge)其實有三個比較重要的能力:

For Event Capturing(事件收集):具備采集事件的能力
For Routing(事件路由):通過事件內容將事件路由分發至于下游的能力的
For Event Processing(事件過濾/替換):對事件進行脫敏或初步過濾&篩選的能力
通常情況下,要實現這三個能力是比較困難的,比如:Event Capturing 可能需要熟悉 Dell Boomi, Snaplogic, MuleSoft, Dataflow, Apache Apex 等,Routing 部分可能通過 RocketMQ,RabbitMQ, ActiveMQ, Apache Kafka ,Event Processing 需要了解 Apache Storm, Apache Flink 。所以之前講的邏輯架構其實非常理想,要想實現完成的 EDA 事件驅動還需要包括這些核心能力。

其實,從剛剛的架構中我們也能窺探到一些信息,EDA 架構其實看起來沒有那么簡單,那它有何優劣呢?下面我就簡單羅列下 EDA 架構在實踐中的優勢:

松耦合:事件驅動架構是高度松耦合且高度分布式的架構模型,事件的創建者(來源)只知道發生的事件,并不知道事件的處理方式,也關心有多少相關方訂閱該事件。
異步執行:EDA 架構是異步場景下最適合的執行工具,我們可以將需要事件保留在隊列中,直到狀態正常后執行。
可擴展性:事件驅動架構可以通過路由&過濾能力快速劃分服務,提供更便捷的擴展與路由分發。
敏捷性:事件驅動架構可以通過將事件分發至任何地方,提供更敏捷高效的部署方案。
當然,劣勢也很明顯:
架構復雜:事件驅動架構復雜,路由節點多,系統結成復雜,功能要求多。
路由分發難:事件路由及分發難,靈活的事件路由需要依賴強大的實時計算能力,對整體分發系統要求較高。
無法追蹤:事件追蹤是整個 EDA 架構保證,EDA 架構中往往很難追蹤到事件處理狀態,需要大量的定制化開發。
可靠性差:事件驅動由于需要多系統集成,可靠性通常較差,且交付無法保障。

阿里云 EventBridge 如何解決 EDA 場景下的困境

針對 EDA 場景下面臨的這些問題,阿里云推出了 EventBridge,一款無服務器事件總線服務,其使命是作為云事件的樞紐,以標準化的 CloudEvents 1.0 協議連接云產品和應用,應用和應用,提供中心化的事件治理和驅動能力,幫助用戶輕松構建松耦合、分布式的事件驅動架構;另外,在阿里云之外的云市場上有海量垂直領域的 SaaS 服務,EventBridge 將以出色的跨產品、跨組織以及跨云的集成與被集成能力,助力客戶打造一個完整的、事件驅動的、高效可控的上云體驗。并針對 EDA 困境提供了針對性的解決方案。

架構復雜:提供業內通用的 Source ,Buses,Rules,Targets 模塊管理能力,同時支持 EventBus 和 EventStream 兩種模式。大幅度降低事件驅動架構難度。

路由分發:EventBridge 通過事件規則驅動,支持 8 大事件模式,4 重轉換器,滿足路由分發的全部訴求。

無法追蹤:獨家提供事件追蹤能力,事件分析/查詢能力。為用戶完善整體事件鏈路。

可靠性差:支持 DLQ/ 重試機制,大幅度保證由于用戶下游系統導致的事件故障與延遲。同時,在此基礎上 EventBridge 支持 82 種阿里云產品,847 種事件類型。

阿里云 EventBridge 更多場景介紹

1. 經典 EDA 事件驅動:事件總線(EventBridge)最重要的能力是通過連接應用程序,云服務和 Serverless 服務構建 EDA(Event-driven Architectures) 事件驅動架構,驅動應用與應用,應用與云的連接。

2. 流式 ETL 場景:EventBridge 另一個核心能力是為流式的數據管道的責任,提供基礎的過濾和轉換的能力,在不同的數據倉庫之間、數據處理程序之間、數據分析和處理系統之間進行數據同步/跨地域備份等場景,連接不同的系統與不同服務。

3. 統一事件通知服務:EventBridge 提供豐富的云產品事件源與事件的全生命周期管理工具,您可以通過總線直接監聽云產品產生的數據,并上報至監控,通知等下游服務。

責任編輯:梁菲 來源: 阿里云云棲號
相關推薦

2016-12-05 08:46:07

緩存架構設計

2015-12-02 09:52:42

2013-08-07 14:19:30

禁用

2022-03-16 19:04:33

設計模式場景

2023-07-12 08:30:52

服務架構事件驅動架構

2012-12-18 20:13:00

云存儲初志

2017-07-28 15:40:01

數據庫MySQL死鎖與日志

2011-01-26 10:52:56

2021-11-23 23:39:19

微服務開發架構

2014-11-20 13:49:15

2022-01-08 21:33:39

反入侵安全風險攻擊

2023-12-05 15:18:27

事件驅動架構RESTful通信模式

2012-08-15 16:03:25

Ubuntu 12.0服務器

2013-10-14 11:03:48

管理貝索斯

2020-04-20 10:40:19

紅藍對抗網絡攻擊數據泄露

2019-04-19 21:06:23

事件驅動架構VANTIQ

2021-11-03 06:25:58

確定性網絡網絡無線網絡

2012-09-21 09:49:37

HadoopHDFS

2023-12-13 10:44:57

事件驅動事件溯源架構

2018-04-16 09:21:04

Oracle數據庫操作系統存儲
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品一区二区三区四区五区 | 欧美精品久久久 | 欧美色综合一区二区三区 | 亚洲在线视频 | 欧洲av一区| 毛片毛片毛片毛片 | 91视频久久 | 中文在线日韩 | 中文字幕欧美一区二区 | 欧美日本韩国一区二区三区 | 人人干人人干人人干 | 特黄特色大片免费视频观看 | 丁香久久 | 日韩中文一区 | 一区二区蜜桃 | 99热这里都是精品 | 日韩欧美国产不卡 | 精品国产乱码久久久 | 一本岛道一二三不卡区 | hdfreexxxx中国妞 | 国产在线观 | 久久在看| 国产精品99久久久久久www | 精品亚洲视频在线 | 天天天插| 中文字幕在线免费观看 | 亚洲一区二区视频 | 亚洲精品在线观看视频 | www视频在线观看 | 国产精品亚洲成在人线 | 日韩一区在线观看视频 | 干干干日日日 | 亚洲一区二区三区在线观看免费 | 一级片视频免费 | 亚洲女优在线播放 | 日韩视频一区二区 | 国产欧美日韩在线一区 | 巨大荫蒂视频欧美另类大 | 日韩影院在线观看 | 天堂va在线观看 | 羞羞视频网 |