springboot學習02:什麼是微服務架構
-
什麼是微服務:
-
微服務是一種架構風格,它要求我們在開發一個應用的時候,這個應用必須構建成一系列小服務的組合,可以通過http的方式進行互通,要說微服務架構,先要明白什麼是單體應用架構;
-
業務拆分成模組;
-
-
單體應用架構:
-
所謂單體應用架構:是指我們將一個應用中的所有應用服務都封裝在一個應用中;
-
無論是ERP,CRM或者其他什麼系統,你都把資料庫訪問,web訪問,等等各個功能放到一個war包內;
-
優點:
-
易於開發和測試,也十分方便部署;當需要擴充套件時,只需要將war複製幾份,然後放到多個伺服器上,再做個負載均衡就可以了;
-
-
缺點:
-
哪怕我要修改一個非常小的地方,我都需要停掉整個服務,重新打包,部署這個應用war包,特別是對於一個大型應用;
-
不方便維護,難以分工;
-
-
-
微服務架構:
-
單體架構方式,是我們把所有的功能單元都放在一個應用裡面,然後我們把整個應用部署到伺服器上,如果負載能力不行,我們將整個應用進行水平復制,進行擴充套件,然後在負載均衡;
-
所謂微服務架構,就是打破之前的單體架構方式,把每個功能元素獨立出來,把獨立出來的功能元素動態組合,需要的功能元素才會去拿來組合,需要多一些時可以整合多個功能元素,所以微服務架構是對功能元素進行復制,而沒有對整個應用進行復制;
-
優點:
-
節省了呼叫資源;
-
每個功能元素的服務都是一個可替換的,可獨立升級的軟體程式碼;
-
-
缺點:
-
部署和運維複雜;
-
-
-
如何構建一個微服務:
-
一個大型系統的微服務架構,就像一個複雜交織的神經網路,每一個神經網路就是一個功能元素,它們各自完成自己的功能,然後通過http相互請求呼叫;
-
比如一個電商系統:查快取,連資料庫,瀏覽頁面,結賬,支付等服務都素一個個獨立的功能服務,都被微化了,它們作為一個個微服務共同構建了龐大的系統;
-
如果修改其中一個功能,只需要更新升級其中一個功能服務單元即可;
-
但是這種龐大的系統架構給部署和運維帶來很大的難度,於是,Spring為我們帶來了構建大型分散式微服務的全套,全程產品:
-
構建一個個功能獨立的微服務應用單元,可以使用Springboot,可以幫我們快速構建一個應用;
-
大型分散式服務的呼叫,這部分由Spring cloud來完成,實現分散式;
-
在分散式中間,進行流式資料計算,批處理,我們有spring cloud data flow;
-
spring為我們想清楚了整個從開始構建應用到大型分散式應用全流程方案;
-
-
-
面試:
-
你主導面試官;
-
面試官主導你;
-