1. 程式人生 > 其它 >springboot學習02:什麼是微服務架構

springboot學習02:什麼是微服務架構

springboot學習02:什麼是微服務架構

  • 什麼是微服務:

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

    • 業務拆分成模組;

       

  • 單體應用架構:

    • 所謂單體應用架構:是指我們將一個應用中的所有應用服務都封裝在一個應用中

    • 無論是ERP,CRM或者其他什麼系統,你都把資料庫訪問,web訪問,等等各個功能放到一個war包內;

    • 優點:

      • 易於開發和測試,也十分方便部署;當需要擴充套件時,只需要將war複製幾份,然後放到多個伺服器上,再做個負載均衡就可以了;

    • 缺點:

      • 哪怕我要修改一個非常小的地方,我都需要停掉整個服務,重新打包,部署這個應用war包,特別是對於一個大型應用;

      • 不方便維護,難以分工;

 

 

  • 微服務架構:

    • 單體架構方式,是我們把所有的功能單元都放在一個應用裡面,然後我們把整個應用部署到伺服器上,如果負載能力不行,我們將整個應用進行水平復制,進行擴充套件,然後在負載均衡;

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

    • 優點:

      • 節省了呼叫資源;

      • 每個功能元素的服務都是一個可替換的,可獨立升級的軟體程式碼;

    • 缺點:

      • 部署和運維複雜;

 

 

  • 如何構建一個微服務:

    • 一個大型系統的微服務架構,就像一個複雜交織的神經網路,每一個神經網路就是一個功能元素,它們各自完成自己的功能,然後通過http相互請求呼叫;

    • 比如一個電商系統:查快取,連資料庫,瀏覽頁面,結賬,支付等服務都素一個個獨立的功能服務,都被微化了,它們作為一個個微服務共同構建了龐大的系統;

    • 如果修改其中一個功能,只需要更新升級其中一個功能服務單元即可;

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

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

      • 大型分散式服務的呼叫,這部分由Spring cloud來完成,實現分散式;

      • 在分散式中間,進行流式資料計算,批處理,我們有spring cloud data flow;

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

         

 

 

  • 面試:

    • 你主導面試官;

    • 面試官主導你;