對SpringBoot和SpringCloud的理解

1、SpringCloud是什麼

  • SpringCloud基於SpringBoot提供了一整套微服務的解決方案,包括服務註冊與發現,配置中心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基於Netflix的開源組件做高度抽象封裝之外,還有一些選型中立的開源組件

  • SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分散式系統的基礎設施開發,SpringCloud為開發人員提供了快速構建分散式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件匯流排,全局所、決策精選、分散式會話等等,他們都可以用SpringBoot的開發風格做到一鍵啟動和部署。

  一句話概括:SpringCloud是分散式微服務架構下的一站式解決方案,是各個微服務架構落地技術的幾何體,俗稱微服務全家桶
  
2、SpringCloud架構

  五大核心組件

1 服務註冊發現-Netflix Eureka
2 配置中心 - spring cloud config
3 負載均衡-Netflix Ribbon
4 斷路器 - Netflix Hystrix
5 路由(網關) - Netflix Zuul

  Spring Boot的哲學就是約定大於配置。既然很多東西都是一樣的,為什麼還要去配置。

1. 通過starter和依賴管理解決依賴問題。
2. 通過自動配置,解決配置複雜問題。
3. 通過內嵌web容器,由應用啟動tomcat,而不是tomcat啟動應用,來解決部署運行問題。

  Spring Cloud體系就比較複雜了。基本可以理解為通過Spring Boot的三大魔法,將各種組件整合在一起,非常簡單易用。


  通過上面SpringCloud架構圖,我們看一下 Spring Cloud主要的組件,以及它的訪間流程

1、外部或者內部的非 Spring Cloud目都統一通過API網關(Zuul)來訪可內部服務.
2、網關接收到請求後,從註冊中心( Eureka)獲取可用服務
3、由 Ribbon進行均負載後,分發到後端的具體實例
4、微服務之間通過 Feign進行通訊處理業務
5、 Hystrix負責處理服務超時熔斷
6、 Turbine監控服務間的調用和焠斷相關指標

  總結一句:Spring boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開Spring boot,屬於依賴的關係。

3、 Maven、SpringCloud、SpringBoot關係總結

  通過上面的描述可以總結出:

(1)SpringBoot:專註於快速方便的開發單個個體微服務(關注微觀)

(2) SpringCloud:關注全局的微服務協調治理框架,將SpringBoot開發的一個個單體微服務組合併管理起來(關注宏觀)

(3) maven是springboot的基礎,springboot項目本身就是maven項目。在maven項目中使用springboot的多個starter加幾個約定,就能成為springboot項目了。

(4)springboot是springcloud的基礎,springcloud本身是springboot項目。

(5)關係:maven->springboot->springcloud

  maven是springboot的基礎,springboot是springcloud的基礎,maven不依賴於springboot,springboot不依賴與springcloud;SpringBoot可以離開SpringCloud獨立使用,但是SpringCloud不可以離開SpringBoot,屬於依賴關係

 

參考:

//blog.csdn.net/weixin_43375482/article/details/99311946

//www.cnblogs.com/ruanjianlaowang/p/11182704.html

//yuange.828707.cn/post/134.html

Tags: