2、SpringBoot:什么是微服務


什么是微服務?

微服務是一種架構風格,它要求我們在開發一個應用的時候,這個應用必須構建成一系列小服務的組合;可以通過http的方式進行互通。要說微服務架構,先得說說過去我們的單體應用架構。

單體應用架構

所謂單體應用架構(all in one)是指,我們將一個應用的中的所有應用服務都封裝在一個應用中。

無論是ERP、CRM或是其他什么系統,你都把數據庫訪問,web訪問,等等各個功能放到一個war包內。

  • 這樣做的好處是,易於開發和測試;也十分方便部署;當需要擴展時,只需要將war復制多份,然后放到多個服務器上,再做個負載均衡就可以了。

  • 單體應用架構的缺點是,哪怕我要修改一個非常小的地方,我都需要停掉整個服務,重新打包、部署這個應用war包。特別是對於一個大型應用,我們不可能吧所有內容都放在一個應用里面,我們如何維護、如何分工合作都是問題。

微服務架構

all in one的架構方式,我們把所有的功能單元放在一個應用里面。然后我們把整個應用部署到服務器上。如果負載能力不行,我們將整個應用進行水平復制,進行擴展,然后在負載均衡。

所謂微服務架構,就是打破之前all in one的架構方式,把每個功能元素獨立出來。把獨立出來的功能元素的動態組合,需要的功能元素才去拿來組合,需要多一些時可以整合多個功能元素。所以微服務架構是對功能元素進行復制,而沒有對整個應用進行復制。

這樣做的好處是:

  1. 節省了調用資源。

  2. 每個功能元素的服務都是一個可替換的、可獨立升級的軟件代碼。

 

Martin Flower 於 2014 年 3 月 25 日寫的《Microservices》,詳細的闡述了什么是微服務。

如何構建微服務

一個大型系統的微服務架構,就像一個復雜交織的神經網絡,每一個神經元就是一個功能元素,它們各自完成自己的功能,然后通過http相互請求調用。比如一個電商系統,查緩存、連數據庫、瀏覽頁面、結賬、支付等服務都是一個個獨立的功能服務,都被微化了,它們作為一個個微服務共同構建了一個龐大的系統。如果修改其中的一個功能,只需要更新升級其中一個功能服務單元即可。

但是這種龐大的系統架構給部署和運維帶來很大的難度。於是,spring為我們帶來了構建大型分布式微服務的全套、全程產品:

  • 構建一個個功能獨立的微服務應用單元,可以使用springboot,可以幫我們快速構建一個應用;

  • 大型分布式網絡服務的調用,這部分由spring cloud來完成,實現分布式;

  • 在分布式中間,進行流式數據計算、批處理,我們有spring cloud data flow。

  • spring為我們想清楚了整個從開始構建應用到大型分布式應用全流程方案。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM