單體架構,垂直架構,SOA架構和微服務架構的變化歷程

軟件架構演進

         軟件架構的發展經歷了從單體結構、垂直架構、SOA架構到微服務架構的過程,博客裏寫到了這四種架它們的特點以及優缺點分析,個人學習之用,僅供參考!

 

1.1.1      單體架構

        

特點:

1、所有的功能集成在一個項目工程中。

2、所有的功能打一個war包部署到服務器。

3、應用與數據庫分開部署。

4、通過部署應用集羣和數據庫集羣來提高系統的性能。

 

優點:

1、項目架構簡單,前期開發成本低,週期短,小型項目的首選。

 

缺點:

1、全部功能集成在一個工程中,對於大型項目不易開發、擴展及維護。

2、系統性能擴展只能通過擴展集羣結點,成本高、有瓶頸。

3、技術棧受限。

 

 

1.1.2      垂直架構

 

 

 

特點:

1、以單體結構規模的項目爲單位進行垂直劃分項目即將一個大項目拆分成一個一個單體結構項目。

2、項目與項目之間的存在數據冗餘,耦合性較大,比如上圖中三個項目都存在客戶信息。

3、項目之間的接口多爲數據同步功能,如:數據庫之間的數據庫,通過網絡接口進行數據庫同步。

優點:

1、項目架構簡單,前期開發成本低,週期短,小型項目的首選。

2、通過垂直拆分,原來的單體項目不至於無限擴大。

3、不同的項目可採用不同的技術。

缺點:

1、全部功能集成在一個工程中,對於大型項目不易開發、擴展及維護。

2、系統性能擴展只能通過擴展集羣結點,成本高、有瓶頸。

 

1.1.3      SOA架構

 

 

 

特點:

1、基於SOA的架構思想將重複公用的功能抽取爲組件,以服務的方式給各各系統提供服務。

2、各各項目(系統)與服務之間採用webservice、rpc等方式進行通信。

3、ESB企業服務總線作爲項目與服務之間通信的橋樑。

優點:

1、將重複的功能抽取爲服務,提高開發效率,提高系統的可重用性、可維護性。

2、可以針對不同服務的特點制定集羣及優化方案。

3、採用ESB減少系統中的接口耦合。

缺點:

1、系統與服務的界限模糊,不利於開發及維護。

2、雖然使用了ESB,但是服務的接口協議不固定,種類繁多,不利於系統維護。

3、抽取的服務的粒度過大,系統與服務之間耦合性高。

 

1.1.1      微服務架構

 

特點:

1、將系統服務層完全獨立出來,並將服務層抽取爲一個一個的微服務。

2、微服務遵循單一原則。

3、微服務之間採用RESTful等輕量協議傳輸。

 

優點:

1、服務拆分粒度更細,有利於資源重複利用,提高開發效率。

2、可以更加精準的制定每個服務的優化方案,提高系統可維護性。

3、微服務架構採用去中心化思想,服務之間採用RESTful等輕量協議通信,相比ESB更輕量。

4、適用於互聯網時代,產品迭代週期更短。

缺點:

1、微服務過多,服務治理成本高,不利於系統維護。

2、分佈式系統開發的技術成本高(容錯、分佈式事務等),對團隊挑戰大。

 

出處:https://blog.csdn.net/chenyunqiang/article/details/81476388

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章