Spring Cloud 綜述
Spring Cloud 是什么
[百度百科]Spring Cloud是?系列框架的有序集合。它利?Spring Boot的開發(fā)便利 性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā),如服務發(fā)現(xiàn)注冊、配置中?、消息總 線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以? Spring Boot的開發(fā)?格做到?鍵啟 動和部署。Spring Cloud并沒有重復制造輪?,它只是將?前各家公司開發(fā)的?較 成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot?格進?再封裝屏蔽 掉了復雜的配置和實現(xiàn)原理,最終給開發(fā)者留出了?套簡單易懂、易部署和易維護 的分布式系統(tǒng)開發(fā)?具包。
Spring Cloud是一系列框架的有序集合(Spring Cloud是一個規(guī)范)
開發(fā)服務發(fā)現(xiàn)注冊、配置中心、消息總線、負載均衡、斷路器、數(shù)據(jù)監(jiān)控等
利用Spring Boot的開發(fā)便利性簡化了微服務架構的開發(fā)(自動裝配)
Spring Cloud 解決什么問題
Spring Cloud 規(guī)范及實現(xiàn)意圖要解決的問題其實就是微服務架構實施過程中存在的一些問題,比如 微服務架構中的服務注冊發(fā)現(xiàn)問題、網(wǎng)絡問題(比如熔斷場景)、統(tǒng)一認證安全授權問題、負載均衡問 題、鏈路追蹤等問題。
Distributed/versioned configuration (分布式/版本化配置)
Service registration and discovery (服務注冊和發(fā)現(xiàn))
Routing (智能路由)
Service-to-service calls (服務調用)
Load balancing (負載均衡)
Circuit Breakers (熔斷器)
Global locks (全局鎖)
Leadership election and cluster state ( 選舉與集群狀態(tài)管理)
Distributed messaging (分布式消息傳遞平臺)
Spring Cloud 架構
Spring Cloud 核心組件
| 第一代 Spring Cloud(Netflix, SCN) | 第二代 Spring Cloud(主要就是Spring Cloud Alibaba,SCA) | |
|---|---|---|
| 注冊中心 | Netflix Eureka | 阿里巴巴 Nacos |
| 客戶端負 載均衡 | Netflix Ribbon | 阿里巴巴 Dubbo LB、Spring Cloud Loadbalancer |
| 熔斷器 | Netflix Hystrix | 阿里巴巴 Sentinel |
| 網(wǎng)關 | Netflix Zuul:性能一般,未來將退出 Spring Cloud 生態(tài)圈 | 官方 Spring Cloud Gateway |
| 配置中心 | 官方 Spring Cloud Config | 阿里巴巴 Nacos、攜程 Apollo |
| 服務調用 | Netflix Feign | 阿里巴巴 Dubbo RPC |
| 消息驅動 | 官方 Spring Cloud Stream | |
| 鏈路追蹤 | 官方 Spring Cloud Sleuth/Zipkin | |
| 阿里巴巴 seata 分布式事務方案 |
Spring Cloud 體系結構(組件協(xié)同工作機制)

Spring Cloud中的各組件協(xié)同工作,才能夠支持一個完整的微服務架構。比如
注冊中心負責服務的注冊與發(fā)現(xiàn),很好將各服務連接起來
API網(wǎng)關負責轉發(fā)所有外來的請求
斷路器負責監(jiān)控服務之間的調用情況,連續(xù)多次失敗進行熔斷保護。
配置中心提供了統(tǒng)一的配置信息管理服務,可以實時的通知各個服務獲取最新的配置信息
Spring Cloud 與 Dubbo 對?、
Dubbo是阿?巴巴公司開源的?個?性能優(yōu)秀的服務框架,基于RPC調?,對于? 前使?率較?的Spring Cloud Netflix來說,它是基于HTTP的,所以效率上沒有 Dubbo?,但問題在于Dubbo體系的組件不全,不能夠提供?站式解決?案,?如 服務注冊與發(fā)現(xiàn)需要借助于Zookeeper等實現(xiàn),?Spring Cloud Netflix則是真正的 提供了?站式服務化解決?案,且有Spring?家族背景。 前些年,Dubbo使?率?于SpringCloud,但?前Spring Cloud在服務化/微服務解 決?案中已經有了?常好的發(fā)展趨勢。
Spring Cloud 與 Spring Boot 的關系
Spring Cloud 只是利?了Spring Boot 的特點,讓我們能夠快速的實現(xiàn)微服務組件 開發(fā),否則不使?Spring Boot的話,我們在使?Spring Cloud時,每?個組件的相 關Jar包都需要我們??導?配置以及需要開發(fā)?員考慮兼容性等各種情況。所以 Spring Boot是我們快速把Spring Cloud微服務技術應?起來的?種?式。
Spring Cloud 核心組件
