微服務架構的發展
- 單體應用架構
- 優點
- 缺點
- 垂直應用架構
- 優點
- 缺點
- 分布式架構
- 優點
- 缺點
- 面向服務的架構(SOA)
- 優點
- 缺點
- 微服務架構
- 優點
- 缺點
- SOA與微服務之間的關系
作業中常用到微服務架構,知識點零零散散,這里稍微整理一下,
微服務架構的誕生是建立在各代程式員的努力之下,先后經歷了單體應用架構、垂直應用架構以及分布式應用架構,并非一朝一夕,
單體應用架構
此架構是將所有的功能集成于一個服務中,即最侄訓打包成一個具體的應用,例如jar,war,每個專案包括每一層每一塊里撰寫所有的代碼,例如一個web工程里面包括了前端頁面,web層代碼,Service層代碼,DAO層代碼,把這些代碼打包到一個專案當中,放到web容器中啟動,如圖所示:

優點
開發簡單,適用于小型應用
缺點
顯然,這種架構易于開發、維護和部署,在用戶量不多的情況下,該架構完全可以滿足需求,但一旦用戶量以及業務的復雜化,再加上代碼的高度耦合,系統的維護和橫向擴展例外困難,當用戶量達到需要負載均衡來支持時,不得不使用多臺服務器,但并不是應用中的每個功能模塊都需要負載均衡,因此在擴展時必然會導致資源的浪費,例如:訂單管理模塊每秒訪問1k次,用戶管理每秒200次,這時擴展時連帶用戶管理一起擴展了,意義不大,總而言之,單體不易擴展與維護,代碼的耦合度高,
垂直應用架構
由于單體應用架構的種種問題,先輩們開始考慮將各功能模塊抽取成獨立的子工程,每個子工程跑在一個容器中,例如:

如果用戶中心訪問較多,只需要針對用戶中心進行擴展就可以了,
優點
解決了高并發問題
可針對不同的模塊進行優化
方便水平擴展
容錯性高(其中一個系統出現了問題了,不影響其他系統,只需要針對出錯的系統進行停機維護即可)
缺點
系統之間相互獨立:需要為相互作用系統建立聯系
大量的重復作業
分布式架構
把一個垂直應用進行業務上的抽取,抽取成兩部分內容,一個是基礎服務,另一個是業務功能,通過業務功能去呼叫相應的基礎服務就構成了分布式應用,這樣就很好的解決了服務與服務之間的呼叫,例如:

優點
解決了服務與服務之間呼叫的問題,即減少了服務與服務之間的耦合度
缺點
隨著服務層體積的增大,應用越來越多,服務的評估,治理與統一治理越來越難
面向服務的架構(SOA)
針對分布式架構缺點,形成了SOA(Service-Oriented Architecture)概念,即面向服務的架構,它可以根據需求通過網路對松散耦合的粗粒度應用組件(服務)進行分布式部署、組合和使用,一個服務通常以獨立的形式存在于作業系統行程中,
站在功能的角度,把業務邏輯抽象成可利用、可組裝的服務,通過服務的編排實作業務的快速再生,目的:把原先固有的業務功能轉變為通用的業務服務,實作業務邏輯的快速利用,比較流行的SOA有ESB,DUBBO,

優點
抽取公共的功能為服務,提高開發效率
對不同的服務進行集群化部署解決系統壓力
基于ESB/DUBBO進一步減少了系統的耦合
缺點
抽取服務的粒度較大
雖然基于ESB/DUBBO進一步減少了系統的耦合,但是耦合還是存在的,且不低
微服務架構
針對SOA的缺點,新的一種架構誕生了,即微服役架構,通過對服務盡可能的拆分,直到不能拆分為上并獨立打包運行,服務呼叫層與服務提供方通過輕量級的http協議進行互動,達到完全解耦的效果,每次互動只需要一個簡單的http請求即可,無需復雜的呼叫技術,每個服務遵循單一職責原則,通過http介面向外提供功能,

優點
通過服務的原子化拆分,以及微服務的獨立打包、部署和升級,小團隊的交付周期將縮短,運維成本也獎大幅度下降
微服務遵循單一職責原則,采用restful等輕量級協議傳輸
缺點
微服務過多,服務治理成本高,不利于系統維護
分布式系統開發的技術成本高(容錯、分布式事物等)
SOA與微服務之間的關系
SOA它是一種設計方法,其中包含多個服務,服務之間通過相互依賴最終提供一系列的功能,一個服務通常以獨立的形式存在于作業系統行程中,各個服務之間通過網路呼叫,
微服務架構 和SOA類似,它是在SOA基礎上的升華,強調的重點是“業務需要徹底的組件化和服務化”,原有的單個業務系統會拆分成多個可以獨立開發、設計、運行的小應用,這些小應用之間通過服務完成互動和集成,
| 功能 | SOA | 微服務 |
|---|---|---|
| 組件大小 | 大塊業務邏輯 | 單獨任務或小塊業務邏輯 |
| 耦合度 | 通常松耦合 | 總是松耦合 |
| 公司架構 | 任何型別 | 小型、專注于功能交叉團隊 |
| 管理 | 著重中央管理 | 著重分散管理 |
| 目標 | 確保應用能夠互動操作 | 執行新功能、快速拓展開發團隊 |
| 呼叫方式 | RPC(較重) | HTTP(較輕) |
總之,微服務的發展不是一朝一夕,也是經過多年的迭代,最終成為廣受歡迎的架構,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/262904.html
標籤:其他
