軟件架構

1.分層架構spring

數據庫-持久層-業務層-表現層 數據庫

優勢:分工,各層能夠獨立測試 缺點:擴展性能差 網絡

2.基於事件的架構架構

事件隊列-分發器-事件通道-事件處理器併發

優勢:屬於分佈式的異步架構,事件處理器之間是高度解耦的,軟件的擴展性好mvc

應用:(1)主要是鬆耦合,易擴展,外部請求都到MQ,在各個業務模塊的rpc server完成消費並response負載均衡

(2)一樣的spring mvc也是這種,將請求分發給多個eventhandler去處理。異步

3.微核架構(插件架構)分佈式

全部的插件都在core system上。插件之間相互獨立的,並且插件之間的通訊應該減小到最低微服務

4.微服務架構

每個服務就是一個獨立的部署單元(separately deployed unit)。這些單元都是分佈式的,互相解耦,經過遠程通訊協議(好比REST、SOAP)聯繫。

其中微服務架構又分爲了三種實現方式
      (1)RESTful API 模式:服務經過 API 提供,雲服務就屬於這一類

     (2)RESTful 應用模式:服務經過傳統的網絡協議或者應用協議提供,背後一般是一個多功能的應用程序,常見於企業內部

    (3)集中消息模式:採用消息代理(message broker),能夠實現消息隊列、負載均衡、統一日誌和異常處理,缺點是會出現單點失敗,消息代理可能要作成集羣

5.雲架構

雲結構(cloud architecture)主要解決擴展性和併發的問題,是最容易擴展的架構

它的高擴展性,主要緣由是沒使用中央數據庫,而是把數據都複製到內存中,變成可複製的內存數據單元。而後,業務處理能力封裝成一個個處理單元(prcessing unit)。訪問量增長,就新建處理單元;訪問量減小,就關閉處理單元。因爲沒有中央數據庫,因此擴展性的最大瓶頸消失了。因爲每一個處理單元的數據都在內存裏,最好要進行數據持久化。

優勢是高負載,高擴展性

相關文章
相關標籤/搜索