【轉載】常見軟件架構分類

參考這篇文章html

http://www.ruanyifeng.com/blog/2016/09/software-architecture.html數據庫

雖然講得比較淺顯,可是仍是能夠看看。網絡

1、分層架構
表現層(presentation):用戶界面,負責視覺和用戶互動
業務層(business):實現業務邏輯
持久層(persistence):提供數據,SQL 語句就放在這一層
數據庫(database) :保存數據
有的軟件在邏輯層和持久層之間,加了一個服務層(service),提供不一樣業務邏輯須要的一些通用接口。

2、事件驅動架構
事件隊列(event queue):接收事件的入口
分發器(event mediator):將不一樣的事件分發到不一樣的業務邏輯單元
事件通道(event channel):分發器與處理器之間的聯繫渠道
事件處理器(event processor):實現業務邏輯,處理完成後會發出事件,觸發下一步操做

3、微核架構
內核(core)一般只包含系統運行的最小功能。插件則是互相獨立的,插件之間的通訊,應該減小到最低,避免出現互相依賴的問題。

4、微服務架構
微服務架構(microservices architecture)是服務導向架構(service-oriented architecture,縮寫 SOA)的升級。

微服務架構分紅三種實現模式。
RESTful API 模式:服務經過 API 提供,雲服務就屬於這一類
RESTful 應用模式:服務經過傳統的網絡協議或者應用協議提供,背後一般是一個多功能的應用程序,常見於企業內部
集中消息模式:採用消息代理(message broker),能夠實現消息隊列、負載均衡、統一日誌和異常處理,缺點是會出現單點失敗,消息代理可能要作成集羣

5、雲架構
這個模式主要分紅兩部分:處理單元(processing unit)和虛擬中間件(virtualized middleware)。
處理單元:實現業務邏輯
虛擬中間件:負責通訊、保持sessions、數據複製、分佈式處理、處理單元的部署。

擬中間件又包含四個組件。
消息中間件(Messaging Grid):管理用戶請求和session,當一個請求進來之後,決定分配給哪個處理單元。
數據中間件(Data Grid):將數據複製到每個處理單元,即數據同步。保證某個處理單元都獲得一樣的數據。
處理中間件(Processing Grid):可選,若是一個請求涉及不一樣類型的處理單元,該中間件負責協調處理單元
部署中間件(Deployment Manager):負責處理單元的啓動和關閉,監控負載和響應時間,當負載增長,就新啓動處理單元,負載減小,就關閉處理單元。
相關文章
相關標籤/搜索