Spring Cloud 入門教程:聊聊Spring Cloud

1、 Spring Cloud 是什麼?

Spring Cloud 是將分佈式系統中一系列基礎框架/工具進行整合的框架。其中包含:服務註冊與發現、服務網關、熔斷器、配置中心、消息中心、服務鏈路追蹤等等。git

Spring Cloud 並無重複造輪子,Spring Cloud只是依賴於Spring Boot屏蔽掉了各個框架複雜的配置。全部的組件就至關於Spring Cloud的插件,開發人員能夠根據本身的須要自由結合使用。
有Spring Boot這個利器在,全部組件均可以輕鬆引入、便捷開發。也必定程度上下降了各組件的學習成本、調試成本、讓開發人員能夠輕鬆上手。github

若是須要從0開始進行服務化體系構建,Spring Cloud必定是最低成本的選擇。
至少 ken.io 這麼以爲。:-)spring

2、 Spring Cloud 整合/集成了那些組件?

Spring Cloud Netflix

Netflix基本上能夠說是公認的微服務架構建設的標杆,之因此Netflix能得到這樣的稱號,這個離不開Netflix已經開源這些優秀的組件( https://netflix.github.io/ ),這些組件也能夠說是Spring Cloud的核心。apache

  • Netflix Eureka

服務註冊中心,支持基於HTTP的服務,支持自動服務的自動註冊與發現、負載均衡、故障轉移等。安全

  • Netflix Hystrix

熔斷器,爲訪問遠程服務、系統提供了熔斷機制,一旦外部服務超時或者發生故障,將會進行熔斷,以防單個或者少數服務發生故障時引發連鎖反應,致使全部服務上游或者相關服務被拖慢、甚至被拖垮。提升系統面對延遲和故障的容錯能力。服務器

  • Netflix Zuul

服務網關,支持動態路由、監控等,經過zuul能夠實現鑑權等功能,也能夠結合Hystrix作一些基礎的熔斷支持。架構

Spring Cloud Config

分佈式配置中心。經過Spring Cloud Config,開發人員能夠將原先放在application.yml中的配置,存儲在遠程服務器(Git、SVN等)集中管理,下降應用配置的維護成本。app

Spring Cloud Bus

事件中心,用於將服務和服務實例與分佈式消息一塊兒鏈接,一般用於集羣間、甚至跨集羣的事件傳播(例如:配置變動)。因此Spring Cloud Bus一般會和Spring Cloud Config結合使用,方便應用自動獲取到配置變動的動做並完成配置的更新。負載均衡

Spring Cloud Consul

服務註冊中心,一樣提供了服務的註冊與發現等功能。
Consul與Eureka二選一便可框架

Spring Cloud Security

基於Spring Security爲Spring Cloud集成的組件提供安全性相關的功能,尤爲是Zuul,一般是結合Zuul提供OAuth 2.0的校驗功能

Spring Cloud Sleuth

分佈式服務鏈路追蹤客戶端工具,一般是結合Zipkin、HTrace等提供分佈式服務鏈路追蹤的功能。

Spring Cloud OpenFeign

Feign是一個Java實現的HTTP Client。能夠很是方便的經過HTTP協議請求外部資源。使用Feign訪問註冊到Eureka的服務,很是方便。

Spring Cloud Starters

基於Spring Boot的各組件的Starter,簡化Spring Cloud各組件的依賴管理。

Spring Cloud 還有如下成員:

Spring Cloud for Cloud Foundry,
Spring Cloud Open Service Broker,
Spring Cloud Cluster,
Spring Cloud Data Flow,
Spring Cloud Stream,
Spring Cloud Stream App Starters,
Spring Cloud Task,
Spring Cloud Task App Starters,
Spring Cloud Zookeeper,
Spring Cloud for Amazon Web Services,
Spring Cloud Connectors,
Spring Cloud CLI,
Spring Cloud Contract,
Spring Cloud Gateway,
Spring Cloud OpenFeign,

這裏 ken.io 就不一一介紹了,

3、 Spring Cloud 是否值得選擇?

對於中小型公司來講,自研完成微服務體系建設成本過高,一般來講是要採用開源的方案。

目前已經開源的微服務框架,有必定的羣衆基礎的也只有Dubbo了。Dubbo也在2018年2月進入了Apache孵化器。Dubbo的服務註冊是依賴於Zookeeper,Dubbo框架自己更多的關注點是在RPC這塊。而Spring Cloud意圖就很明顯了,重在整合,依賴於Spring Boot,將各個框架的複雜度或者是框架以前結合的複雜度很大程度上進行了削減。

總結來講,Spring Cloud的思路就是,已經有的我拿來用,實在沒有的我再補充。
Spring Cloud相對於Dubbo來講,是整合了整套解決方案的框架,而Dubbo只是其中的一個點。

Dubbo相對於Spring Cloud更輕,不過選擇Dubbo就可能意味着跟其餘組件的整合就須要付出更多一點的成本。對於ken這樣一個比較懶的人,推薦使用更全面的Spring Cloud。

4、備註

本文參考

相關文章
相關標籤/搜索