Spring Cloud體系介紹


上圖只是Spring Cloud體系的一部分,Spring Cloud共集成了19個子項目,里面都包含一個或者多個第三方的組件或者框架!

Spring Cloud 工具框架

1、Spring Cloud Config 配置中心,利用git集中管理程序的配置。 

2、Spring Cloud Netflix 集成眾多Netflix的開源軟件
3、Spring Cloud Bus 消息總線,利用分布式消息將服務和服務實例連接在一起,用於在一個集群中傳播狀態的變化 
4、Spring Cloud for Cloud Foundry 利用Pivotal Cloudfoundry集成你的應用程序
5、Spring Cloud Cloud Foundry Service Broker 為建立管理雲托管服務的服務代理提供了一個起點。
6、Spring Cloud Cluster 基於Zookeeper, Redis, Hazelcast, Consul實現的領導選舉和平民狀態模式的抽象和實現。
7、Spring Cloud Consul 基於Hashicorp Consul實現的服務發現和配置管理。
8、Spring Cloud Security 在Zuul代理中為OAuth2 rest客戶端和認證頭轉發提供負載均衡
9、Spring Cloud Sleuth SpringCloud應用的分布式追蹤系統,和Zipkin,HTrace,ELK兼容。
10、Spring Cloud Data Flow 一個雲本地程序和操作模型,組成數據微服務在一個結構化的平台上。
11、Spring Cloud Stream 基於Redis,Rabbit,Kafka實現的消息微服務,簡單聲明模型用以在Spring Cloud應用中收發消息。
12、Spring Cloud Stream App Starters 基於Spring Boot為外部系統提供spring的集成
13、Spring Cloud Task 短生命周期的微服務,為SpringBooot應用簡單聲明添加功能和非功能特性。
14、Spring Cloud Task App Starters
15、Spring Cloud Zookeeper 服務發現和配置管理基於Apache Zookeeper。
16、Spring Cloud for Amazon Web Services 快速和亞馬遜網絡服務集成。
17、Spring Cloud Connectors 便於PaaS應用在各種平台上連接到后端像數據庫和消息經紀服務。
18、Spring Cloud Starters (項目已經終止並且在Angel.SR2后的版本和其他項目合並)
19、Spring Cloud CLI 插件用Groovy快速的創建Spring Cloud組件應用。

當然這個數量還在一直增加...

三者之間的關系

微服務是一種架構的理念,提出了微服務的設計原則,從理論為具體的技術落地提供了指導思想。Spring Boot是一套快速配置腳手架,可以基於Spring Boot快速開發單個微服務;Spring Cloud是一個基於Spring Boot實現的服務治理工具包;Spring Boot專注於快速、方便集成的單個微服務個體,Spring Cloud關注全局的服務治理框架。

Spring Boot/Cloud是微服務實踐的最佳落地方案。

實戰經歷

遇到問題,尋找方案

2015年初的時候,因為公司業務的大量發展,我們開始對原有的業務進行拆分,新上的業務線也全部使用獨立的項目來開發,項目和項目之間通過http接口進行訪問。15年的業務發展非常迅速,項目數量也就相應急劇擴大,到了15底的時候項目達60多個,當項目數達到30幾個的時候,其實我們就遇到了問題,經常某個項目因為擴展增加了新的IP地址,我們就需要被動的更新好幾個相關的項目。服務越來越多,服務之間的調用關系也越來越復雜,有時候想畫一張圖來表示項目和項目之間的依賴關系,線條密密麻麻無法看清。網上有一張圖可以表達我們的心情。

這個時候我們就想找一種方案,可以將我們這么多分布式的服務給管理起來,到網上進行了技術調研。我們發現有兩款開源軟件比較適合我們,一個是Dubbo,一個是Spring Cloud。

其實剛開始我們是走了一些彎路的。這兩款框架我們當時都不熟悉,當時國內使用Spring Cloud進行開發的企業非常的少,我在網上也幾乎沒找到太多應用的案例。但是Dubbo當時在國內的使用還是挺普遍的,相關的資料各方面都比較完善。因此在公司擴展新業務線眾籌平台的時候,技術選型就先定了Dubbo,因為也是全新的業務沒有什么負擔,這個項目我們大概開發了六個月投產,上線之初也遇到了一些問題,但最終還比較順利。

在新業務線選型使用Dubbo的同時,我們也沒有完全放棄Spring Cloud,我們抽出了一兩名開發人員學習Spring Boot我也參與其中,為了驗證Spring Boot是否可以到達實戰的標准,我們在業余的時間使用Spring Boot開發了一款開源軟件雲收藏,經過這個項目的實戰驗證我們對Spring Boot就有了信心。最重要的是大家體會到使用Spring Boot的各種便利之后,就再也不想使用傳統的方式來進行開發了。

但是還有一個問題,在選擇了Spring Boot進行新業務開發的同時,並沒有解決我們上面的那個問題,服務於服務直接調用仍然比較復雜和傳統,這時候我們就開始研究Spring Cloud。因為大家在前期對Spring Boot有了足夠的了解,因此學習Sprig Cloud就顯得順風順水了。所以在使用Dubbo半年之后,我們又全面開始擁抱Spring Cloud。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM