參考這篇文章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):負責處理單元的啓動和關閉,監控負載和響應時間,當負載增長,就新啓動處理單元,負載減小,就關閉處理單元。