隨着互聯網的發展,網站應用的規模不斷擴大。需求的激增,帶來的是技術上的壓力。
系統架構也因此也不斷的演進、升級、迭代。從單一應用,到垂直拆分,到分佈式服務,到SOA,以及現在火熱的微服務架構 。
1.單體應用
優點:
架構圖簡單易懂
對於一些小項目來講,開發維護比較的簡單
部署在一個單點的tomcat上面,後期維護比較的方便
缺點:
對於大型項目來講,分工,維護比較的困難
模塊之間緊密耦合,單點容錯率比較的低
無法單獨的對一個模塊進行水平的擴展
2.垂直應用架構
優點:
系統拆分之後就可以進行水平擴展和優化,提高了單點的容錯容錯性
缺點:
系統之間無法相互調用,會有一部分的重複的代碼
3.分佈式的架構
優點:
將基礎服務進行了抽取,系統間相互調用,提高了代碼複用和開發效率
缺點:
系統間耦合度變高,調用關係錯綜複雜,難以維護
4.SOA架構
當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基於訪問壓力實時管理集羣容量,提高集羣利用率。此時,用於提高機器利用率的資源調度和治理中心(SOA)是關鍵
優點:
使用服務治理中心,幫我們維護複雜的調用關係
缺點:
服務有依賴性,可能會因爲一個服務的問題,導致其它的服務不可調用的問題。
5.微服務架構
優點:
服務原子化的拆分,獨立打包,部署和升級,保證每個微服務清晰的任務劃分,利於擴展
缺點:
分佈式技術開發的成本高(容錯,分佈式事務等)