深刻理解Spring Cloud與微服務構建【二】 - 2.2 Spring Cloud

2.2.1 簡介

Spring Cloud 是基於 Spring Boot 的。 Spring Boot 是由 Pivotal 團隊提供的全新 Web 框架, 它主要的特色就是簡化了開發和部署的過程,簡化了 Spring 複雜的配置和依賴管理,經過起 步依賴和內置 Serviet 容器可以使開發者迅速搭起一個 Web 工程。後端

2.2.2 經常使用組件

(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 能夠實現消息的接收和發送。
圖片描述安全

2.2.3 項目一覽表

  1. Spring Cloud Config:服務配置中心,將全部的服務的配置文件放到本地倉庫或者遠程倉庫,配置中心負責讀取倉庫的配置文件,其餘服務向配置中心讀取配置。 Spring Cloud Config 使得服務的配置統一管理,並能夠在不人爲重啓服務的狀況下進行配置 文件的刷新。
  2. Spring Cloud Netflix:它是經過包裝了 Netflix 公司的微服務組件實現的,也是 Spring Cloud核心的核心組件,包括 Eureka、 Hystrix、 Zuul、 Archaius 等。
  3. Eureka:服務註冊和發現組件。
  4. Hystrix:熔斷器組件。 Hystrix 經過控制服務的 API 接口的熔斷來轉移故障,防止微 服務系統發生雪崩效應。另外,Hystrix 可以起到服務限流和服務降級的做用。使用 Hystrix Dashboard 組件監控單個服務的熔斷器的狀態,使用Turbine 組件能夠聚合多 個服務的熔斷器的狀態。
  5. Zuul:智能路由網關組件。 Netflix Zuul 可以起到智能路由和請求過濾的做用,是服務接口統一暴露的關鍵模塊,也是安全驗證、權限控制的一道門。
  6. Feign: 聲明式遠程調度組件。
  7. Ribbon: 負載均衡組件。
  8. Archaius:配置管理 API 的組件, 一個基於 Java 的配置管理庫, 主要用於多配置的動 態獲取。
  9. Spring Cloud Bus: 消息總線組件,常和 Spring Cloud Config 配合使用,用於動態刷 新服務的配置。
  10. Spring Cloud Sleuth:服務鏈路追蹤組件,封裝了 Dapper、 Zipkin, Kibina 等組件,能夠實時監控服務的鏈路調用狀況。
  11. Spring Cloud Data Flow:大數據操做組件, Spring Cloud Data Flow 是 SpringXD的替 代品,也是一個混合計算的模型,能夠經過命令行的方式操做數據流。
  12. Spring Cloud Security: 安全模塊組件,是對 Spring Security 的封裝,一般配合 0Auth2使用來保護微服務系統的安全。 口 Spring Cloud Consul:該組件是 Spring Cloud 對 Consul的封裝,和 Eureka 相似,它是 另外一個服務註冊和發現組件。
  13. Spring Cloud Zookeeper: 該組件是 Spring Cloud對Zookeeper 的封裝,和Eureka、Consul 相似,用於服務的註冊和發現。
  14. Spring Cloud Stream:數據流操做組件,能夠封裝 Redis、 RabbitMQ、 Kafka 等組件,實現發送和接收消息等。
  15. Spring Cloud CLI:該組件是 Spring Cloud 對 Spring Boot CLI 的封裝,可讓用戶以命令行方式快速運行和搭建容器。
  16. Spring Cloud Task: 該組件基於 Spring Task,提供了任務調度和任務管理的功能。
  17. Spring Cloud Connectors: 用於 Paas 雲平臺鏈接到後端。
相關文章
相關標籤/搜索