Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,均可以用Spring Boot的開發風格作到一鍵啓動和部署。spring
Spring並無重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,經過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。安全
目前最新版本:Dalston.SR3微信
Spring Cloud專一於提供良好的開箱即用經驗的典型用例和可擴展性機制覆蓋。負載均衡
分佈式/版本化配置框架
服務註冊和發現分佈式
路由微服務
service - to - service調用工具
負載均衡開發工具
斷路器
分佈式消息傳遞
Spring Cloud的子項目,大體可分紅兩類,一類是對現有成熟框架」Spring Boot化」的封裝和抽象,也是數量最多的項目;第二類是開發了一部分分佈式系統的基礎設施的實現,如Spring Cloud Stream扮演的就是kafka, ActiveMQ這樣的角色。對於咱們想快速實踐微服務的開發者來講,第一類子項目就已經足夠使用,如:
Spring Cloud Netflix
是對Netflix開發的一套分佈式服務框架的封裝,包括服務的發現和註冊,負載均衡、斷路器、REST客戶端、請求路由等。
Spring Cloud Config
將配置信息外部化存儲, 並能配合Spring Cloud Bus能夠實現動態修改配置文件。
Spring Cloud Bus
分佈式消息隊列,是對Kafka, MQ的封裝。
Spring Cloud Security
是對Spring Security的封裝,能實現服務之間的認證調用和安全保護等,並能配合Netflix使用。
Spring Cloud Zookeeper
對Zookeeper的封裝,使之能配置其它Spring Cloud的子項目使用。
Spring Cloud Eureka
是 Spring Cloud Netflix微服務套件中的一部分,它基於Netflix Eureka 作了二次分裝,主要負責完成微服務架構中的服務治理功能。
Spring Cloud對於中小型互聯網公司來講是一種福音,由於這類公司每每沒有實力或者沒有足夠的資金投入去開發本身的分佈式系統基礎設施,使用Spring Cloud一站式解決方案能在從容應對業務發展的同時大大減小開發成本。同時,隨着近幾年微服務架構和Docker容器概念的火爆,也會讓Spring Cloud在將來愈來愈「雲」化的軟件開發風格中立有一席之地,尤爲是在目前五花八門的分佈式解決方案中提供了標準化的、全站式的技術方案,意義可能會堪比當前Servlet規範的誕生,有效推動服務端軟件系統技術水平的進步。
組件 | Dubbo | Spring Cloud |
---|---|---|
服務註冊中心 | Zookeeper | Spring Cloud Netflix Eureka |
服務調用方式 | RPC | REST API |
服務網關 | 無 | Spring Cloud Netflix Zuul |
斷路器 | 不完善 | Spring Cloud Netflix Hystrix |
分佈式配置 | 無 | Spring Cloud Config |
服務跟蹤 | 無 | Spring Cloud Sleuth |
消息總線 | 無 | Spring Cloud Bus |
數據流 | 無 | Spring Cloud Stream |
批量任務 | 無 | Spring Cloud Task |
... | ... | ... |
因此,對比看出其實沒什麼比較性,Dubbo只是Spring Cloud的一個子集而已,Spring Cloud是一系列的分佈式的解決方案包。不過隨着目前Dubbo官方的從新申明維護並獲得重視,Dubbo生態圈也會逐漸強大。
最後,在Java技術棧微信公衆號後臺回覆:cloud,可獲取棧長整理的一系列 Spring Cloud 教程,目前大量教程還在撰寫中……