Spring Cloud簡介

Spring Cloud簡介

一.什麼是Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啓動和部署。Spring Cloud並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。

二.Spring Cloud常用組件

2.1 Spring Cloud Config
服務配置中心,將所有的服務的配置文件放到本地倉庫或者遠程倉庫,配置中心負責讀取倉庫的配置文件,其他服務向配置中心讀取配置。Spring Cloud Config使得服務的配置統一管理,並可以在不人爲重啓服務的情況下進行配置文件的刷新。

2.2 Spring Cloud Netflix
它是通過包裝了Netflix公司的微服務組件實現的,也是Spring Cloud核心組件,包括Eureka,Hystrix,Zuul,Archaius。

2.3 Eureka
服務註冊和發現組件

2.4 Hystrix
熔斷器組件。它通過控制服務的API接口的熔斷來轉移故障,防止微服務系統發生雪崩效應。另外Hystrix能夠起到服務限流和服務降級的作用。使用Hystrix Dashboard組件監控單個服務的熔斷狀態,使用Hystrix Turbine組件可以監控多個服務的熔斷器的狀態。

2.5 Zuul
智能路由網關組件。能夠起到智能路由和請求過濾的作用,內部服務API接口通過Zuul網關統一對外暴露,防止內部服務敏感信息對外暴露。也可以實現安全驗證,權限控制。

2.6 Feign
聲明式遠程調度組件。

2.7 Ribbon
負載均衡組件

2.8 Archaius
配置管理API組件,一個基於Java的配置管理庫,主要用於多配置的動態獲取。

2.9 Spring Cloud Bus
消息總線組件,常和Spring Cloud Config配合使用,用於動態刷新服務的配置。

2.10 Spring Cloud Sleuth
服務鏈路追蹤組件,封裝了Dapper,Zipkin,Kibina等組件,可以實時監控服務鏈路調用狀況。

2.11 Spring Cloud Data Flow
大數據操作組件,它是Spring XD的替代品,也是一個混合計算模型,可以通過命令行的方式操作數據流

2.12 Spring Cloud Consul
該組件是Spring Cloud對Consul的封裝,和Eureka類似,它是一個服務註冊和發現組件。

2.13 Spring Cloud Zookeeper
該組件是Spring Cloud對Zookeeper的封裝,也是用於服務註冊和發現

2.14 Spring Cloud Stream
數據流操作組件,可以封裝 Redis,RabbitMQ,Kafka等組件,實現消息的接受和發送。

2.15 Spring Cloud CLI
該組件是對Spring Boot CLI的封裝,可以讓用戶以命令行方式快速搭建和運行容器。

2.16 Spring Cloud Task
該組件基於Spring Tsak,提供任務調度和任務管理的功能。

三.Spring Cloud 和 Dubbo比較

這裏寫圖片描述

Spring Cloud擁有很多的項目模塊,包含微服務的方方面面,Dubbo是個十分優秀的服務治理和服務調用框架,但缺少了很多的功能模塊,例如網關,鏈路追蹤等。
開發風格上,Dubbo傾向於xml配置方式,而Spring Cloud基於Spring Boot,它採用基於註解和JavaBean配置方式的敏捷開發。
通信方式上Spring Cloud大多數基於HTTP Restful風格,服務與服務間完全耦合,因此服務無關乎語言和平臺。Dubbo採用遠程調用方式,對接口平臺和編程語言有強依賴性。
Dubbo和Spring Cloud各有優缺點,Dubbo更易上手,也非常成熟和穩定,Spring Cloud服務框架嚴格準守者 Martin Fowler 提出的微服務規範,社區活躍,未來很可能成爲微服務架構的標準。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章