Spring Cloud 是基於 Spring Boot 的。 Spring Boot 是由 Pivotal 團隊提供的全新 Web 框架, 它主要的特色就是簡化了開發和部署的過程,簡化了 Spring 複雜的配置和依賴管理,經過起 步依賴和內置 Serviet 容器可以使開發者迅速搭起一個 Web 工程。後端
(1 )服務註冊和發現組件 Eureka
利用 Eureka 組件能夠很輕鬆地實現服務的註冊和發現的功能。 Eureka 組件提供了服務的健 康監測,以及界面友好的 UI。經過 Eureka 組件提供的 UI, Eureka 組件可讓開發人員隨時了 解服務單元的運行狀況。另外 Spring Cloud 也支持 Consul 和 Zookeeper,用於註冊和發現服務。
(2 )熔斷組件 Hystrix
Hystrix 是一個熔斷組件,它除了有一些基本的熔斷器功能外,還可以實現服務降級、服 務限流的功能。另外 Hystrix 提供了熔斷器的健康監測,以及熔斷器健康數據的 API 接口。 Hystrix Dashboard 組件提供了單個服務熔斷器的健康狀態數據的界面展現功能 , Hystrix Turbine 組件提供了多個服務的熔斷器的健康狀態數據的界面展現功能。
(3 )負載均衡組件 Ribbon
Ribbon 是一個負載均衡組件,它一般和 Eureka、 Zuul、 RestTemplate、 Feign 配合使用。 Ribbon 和 Zuul 配合,很容易作到負載均衡,將請求根據負載均衡策略分配到不一樣的服務實例 中。 Ribbon 和I RestTemplate、 Feign 配合,在消費服務時可以作到負載均衡。
(4)路由網關 Zuul
路由網關Zuul 有智能路由和過濾的功能。內部服務的 API 接口經過Zuul 網關統一對外暴露, 內部服務的 API 接口不直接暴露,防止了內部服務敏感信息對外暴露。在默認的狀況下, Zuul 和Ribbon 相結合,可以作到負載均衡、 智能路由。 Zuul 的過濾功能是經過攔截請求來實現的, 能夠 對一些用戶的角色和權限進行判斷,起到安全驗證的做用, 同時也能夠用於輸山實時的請求曰志。 上述的 4 個組件都來自於 Netflix 的公司 , 統一稱爲 Spring Cloud Netflix。
( 5) Spring Cloud Config
Spring Cloud Config 組件提供了配置文件統一管理的功能。Spring Cloud Config 包括 Server 端和 Client 端, Server 端讀取本地倉庫或者遠程倉庫的配置文件,全部的 Client 向 Server 讀 取配置信息,從而達到配置文件統一管理的目的。一般狀況下, Spring Cloud Config 和 Spring Cloud Bus 相互配合刷新指定 Client 或全部 Client 的配置文件。
( 6) Spring Cloud Security
Spring Cloud Security 是對 Spring Security 組件的封裝, Spring Cloud Security 向服務單元 提供了用戶驗證和權限認證。通常來講,單獨在微服務系統中使用 Spring Cloud Security 是很 少見的, 通常它會配合 Spring Security 0Auth2 組件一塊兒使用,經過搭建受權服務,驗證 Token 或者 JWT 這種形式對整個微服務系統進行安全驗證。
( 7) Spring Cloud Sleuth
Spring Cloud Sleuth 是一個分佈式鏈路追蹤組件,它封裝了 Dapper、 Zipkin 和 Kibana 等組 件,經過它能夠知道服務之間的相互依賴關係,並實時觀察鏈路的調用狀況。
( 8) Spring Cloud Stream
Spring Cloud Stream 是 Spring Cloud 框架的數據流操做包,能夠封裝 RabbitMq、ActiveMq、 Kafka、 Redis 等消息組件, 利用 Spring Cloud Stream 能夠實現消息的接收和發送。安全