SOA/EDA

《SOA》

面向服務架構(Service-Oriented Architecture)是一種 IT 架構策略。SOA 已經逐漸地成爲業界的標準。網絡

由於 SOA 常常和 Web Service 相提並論,認爲這二者是等同的,其實否則。雖然二者有不少的關聯,但它們是大相徑庭的兩個概念,或者說考慮問題的角度不一樣。架構

雖然 SOA 最初的流行離不開 Web Service 的貢獻,但現在 SOA 早已超越了 Web Service 的範疇,變成一個獨立的設計理念。異步

【SOA 的侷限性】spa

SOA 主要從系統解構的角度入手,它側重於將整個應用分解爲一系列獨立的服務,並指定各類標準和基礎設施來使得這些服務易於重用,可以很容易地被各類平臺上的應用來使用。可是在服務實際業務時出現了一些問題,由於 SOA 更多地是關注靜態的信息,因此不能很好地與動態業務匹配。好比 SOA 不能很好地回答相似下面的一些問題:線程

好比在一個證券公司,有很完善的交易系統、後臺系統、帳務系統和頭寸管理系統等,當一個客戶的下單在交易所執行後,全部的這些系統都應該獲得通知,並作出相應的處理。這裏面其實包含了幾個問題:誰來負責觸發這樣一個事件,各個系統如何獲得通知?如何保證各個系統行動的一致性? SOA 架構因爲其關注點的限制,並不能很好地解決上述問題,而這些問題每每又是實際系統很是須要的特性。所以,EDA 與 SOA 的集成引發了人們的注意。設計

經過引入面向事件的機制,使得系統具有了感知和快速響應業務事件的能力。其實無論是 SOA 仍是 EDA 都不是什麼新技術,無非是在一些舊的概念上添加了一些新元素。事件

《EDA》

事件驅動架構(Event-Driven Architecture)ci

能夠從兩個方面來理解 EDA:路由

    1. EDA 是一種側重於以生成/消費爲基礎的異步通訊的架構模式。這主要對照於傳統的基於線程的同步系統。
    2. EDA 是一種以事件 (event)爲核心,提供事件產生,路由,消費已經結果回調等機制的架構模式。

 

SOA是一個服務調用另外一個服務完成服務之間的交互,服務之間緊耦合;同步

EDA是一個組件訂閱另外一個組件的事件消息,根據事件信息更新組件本身的狀態,因此EDA架構,每一個組件都不會依賴其餘的組件;

組件之間僅僅經過topic產生關聯,耦合性很是低。

 

其餘:DDD領域驅動設計、CQRS架構(命令/讀寫職責分開)、事件溯源(Event Sourcing,簡稱ES)、事件驅動架構(EDA)

摘自網絡

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息