天天看點

1.4微服務--SpringCloud介紹SpringCloud介紹

SpringCloud介紹

一、簡介

Spring Cloud 是基于Spring Boot 的。Spring Boot主要的特點就是簡化了開發和部署的過程,簡化了Spring 複雜的配置和依賴管理,通過起步依賴和内置Servlet 容器能夠使開發者迅速搭起一個Web 工程;

Spring Cloud 在開發部署上繼承了Spring Boot 的一些優點,提高其在開發和部署上的效率;

Spring Cloud 的首要目标就是通過提供一系列開發元件和架構,幫助開發者迅速搭建一個分布式的微服務系統,通過包裝其他技術架構來完成,實作了一套通過基于注解、Java 配置和基于模版開發的微服務架構;

Spring Cloud 提供了開發分布式微服務系統的一些常用元件,例如服務注冊和發現、配置中心、熔斷器、智能路由、微代理、控制總線、全局鎖、分布式會話。

二、常用元件

1、 服務注冊和發現元件Eureka

利用Eureka 元件可以很輕松地實作服務的注冊和發現的功能,Eureka 元件提供了服務的健康監測,以及界面友好的UI ;

通過Eureka 元件提供的UI, Eureka 元件可以讓開發人員随時了解服務單元的運作情況。另外Spring Cloud 也支援Consul 和Zookeeper,用于注冊和發現服務

2、熔斷元件Hystrix

Hystrix 是一個熔斷元件,它除了有一些基本的熔斷器功能外,還能夠實作服務降級、服務限流的功能,另外Hystrix 提供了熔斷器的健康監測,以及熔斷器健康資料的API 接口;

Hystrix Dashboard 元件提供了單個服務熔斷器的健康狀态資料的界面展示功能, HystrixTurbine 元件提供了多個服務的熔斷器的健康狀态資料的界面展示功能

3、負載均衡元件Ribbon

Ribbon 是一個負載均衡元件,它通常和Eureka 、Zuul 、RestTemplate 、Feign 配合使用,Ribbon 和Zuul 配合,很容易做到負載均衡,将請求根據負載均衡政策配置設定到不同的服務執行個體中。Ribbon 和IRestTemplate 、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 和SpringCloud 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 、Red is 等消息元件, 利用Spring Cloud Stream 可以實作消息的接收和發送。

上述列舉了一些常用的Spring Cloud 元件,一個簡單的由Spring Cloud 構述的微服務系統,通常由服務注冊中心Eureka、網關Zuul 、配置中心Config 和授權服務Auth 構成, 架構如閣所示:

1.4微服務--SpringCloud介紹SpringCloud介紹

三、項目預覽

1)Spring Cloud Config

服務配置中心,将所有的服務的配置檔案放到本地倉庫或者遠端倉庫,配置中心負責讀取倉庫的配置檔案,其他服務向配置中心讀取配置。SpringCloud Config 使得服務的配置統一管理, 并可以在不人為重新開機服務的情況下進行配置檔案的重新整理。

2)Spring Cloud Netflix

通過包裝了Netflix 公司的微服務元件實作的,也是SpringCloud 核心的核心元件,包括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 的封裝,通常配合OAuth2使用來保護微服務系統的安全

13)Spring Cloud Consul :該元件是Spring Cloud 對Consul 的封裝,和Eureka 類似,它是另一個服務注冊和發現元件

14)Spring Cloud Zookeeper : 該元件是Spring Cloud 對Zookeeper 的封裝,和Eureka 、Consul類似,用于服務的注冊和發現

15)Spring Cloud Stream :資料流操作元件,可以封裝Redis 、RabbitMQ 、Kafka 等元件,實作發送和接收消息等。

16)Spring Cloud CLI :該元件是Spring Cloud 對Spring Boot CLI 的封裝,可以讓使用者以指令行方式快速運作和搭建容器。

17)Spring Cloud Task : 該元件基于Spring Task ,提供了任務排程和任務管理的功能

18)Spring Cloud Connectors :用于Paas 雲平台連接配接到後端

————————————————————————————————————————————

内容來源---《深入了解Spring Cloud與微服務建構》

繼續閱讀