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,屬於依賴關係
參考:
https://blog.csdn.net/weixin_43375482/article/details/99311946
https://www.cnblogs.com/ruanjianlaowang/p/11182704.html
http://yuange.828707.cn/post/134.html