springcloud介紹

andy888發表於2019-08-15

1.認識微服務

隨著網際網路行業的發展,對服務的要求也越來越高,服務架構也從單體架構逐漸演變為現在流行的微服務架構。這些架構之間有怎樣的差別呢?

1.0.學習目標

瞭解微服務架構的優缺點

1.1.單體架構

單體架構:將業務的所有功能集中在一個專案中開發,打成一個包部署。

image-20210713202807818

單體架構的優缺點如下:

優點:

  • 架構簡單
  • 部署成本低

缺點:

  • 耦合度高(維護困難、升級困難)

1.2.分散式架構

分散式架構:根據業務功能對系統做拆分,每個業務功能模組作為獨立專案開發,稱為一個服務。

image-20210713203124797

分散式架構的優缺點:

優點:

  • 降低服務耦合
  • 有利於服務升級和擴充

缺點:

  • 服務呼叫關係錯綜複雜

分散式架構雖然降低了服務耦合,但是服務拆分時也有很多問題需要思考:

  • 服務拆分的粒度如何界定?
  • 服務之間如何呼叫?
  • 服務的呼叫關係如何管理?

人們需要制定一套行之有效的標準來約束分散式架構。

1.3.微服務

微服務的架構特徵:

  • 單一職責:微服務拆分粒度更小,每一個服務都對應唯一的業務能力,做到單一職責
  • 自治:團隊獨立、技術獨立、資料獨立,獨立部署和交付
  • 面向服務:服務提供統一標準的介面,與語言和技術無關
  • 隔離性強:服務呼叫做好隔離、容錯、降級,避免出現級聯問題

image-20210713203753373

微服務的上述特性其實是在給分散式架構制定一個標準,進一步降低服務之間的耦合度,提供服務的獨立性和靈活性。做到高內聚,低耦合。

因此,可以認為微服務是一種經過良好架構設計的分散式架構方案

但方案該怎麼落地?選用什麼樣的技術棧?全球的網際網路公司都在積極嘗試自己的微服務落地方案。

其中在Java領域最引人注目的就是SpringCloud提供的方案了。

1.4.SpringCloud

SpringCloud是目前國內使用最廣泛的微服務框架。官網地址:https://spring.io/projects/spring-cloud。

SpringCloud整合了各種微服務功能元件,並基於SpringBoot實現了這些元件的自動裝配,從而提供了良好的開箱即用體驗。

其中常見的元件包括:

image-20210713204155887

另外,SpringCloud底層是依賴於SpringBoot的,並且有版本的相容關係,如下:

image-20210713205003790

我們課堂學習的版本是 Hoxton.SR10,因此對應的SpringBoot版本是2.3.x版本。

1.5.總結

  • 單體架構:簡單方便,高度耦合,擴充套件性差,適合小型專案。例如:學生管理系統

  • 分散式架構:鬆耦合,擴充套件性好,但架構複雜,難度大。適合大型網際網路專案,例如:京東、淘寶

  • 微服務:一種良好的分散式架構方案

    ①優點:拆分粒度更小、服務更獨立、耦合度更低

    ②缺點:架構非常複雜,運維、監控、部署難度提高

  • SpringCloud是微服務架構的一站式解決方案,整合了各種優秀微服務功能元件

相關文章