SpringCloud,基於SpringBoot提供了一套微服務解決方案,包括服務註冊與發現,配置中心,全鏈路監控,服務網關,負載均衡,熔斷器等組件,除了基於NetFlix的開源組件作高度抽象封裝以外,還有一些選型中立的開源組件。html
SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,SpringCloud爲開發人員提供了快速構建分佈式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等等,它們均可以用SpringBoot的開發風格作到一鍵啓動和部署。git
SpringBoot並無重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,經過SpringBoot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包github
SpringCloud=分佈式微服務架構下的一站式解決方案,是各個微服務架構落地技術的集合體,俗稱微服務全家桶。spring
SpringBoot專一於快速方便的開發單個個體微服務。apache
SpringCloud是關注全局的微服務協調整理治理框架,它將SpringBoot開發的一個個單體微服務整合並管理起來,爲各個微服務之間提供,配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分佈式會話等等集成服務架構
SpringBoot能夠離開SpringCloud獨立使用開發項目,可是SpringCloud離不開SpringBoot,屬於依賴的關係.負載均衡
SpringBoot專一於快速、方便的開發單個微服務個體,SpringCloud關注全局的服務治理框架。框架
最大的區別,就是spring cloud有全套的配置不須要引入第三方的軟件,而dubbo須要引入第三方的軟件纔可以正常使用微服務架構。分佈式
Dubbo活躍度:微服務
https://github.com/apache?q=dubbo&type=&language= |
Spring Cloud活躍度:
https://github.com/spring-cloud |
最大區別:SpringCloud拋棄了Dubbo的RPC通訊,採用的是基於HTTP的REST方式。
嚴格來講,這兩種方式各有優劣。雖然從必定程度上來講,後者犧牲了服務調用的性能,但也避免了上面提到的原生RPC帶來的問題。並且REST相比RPC更爲靈活,服務提供方和調用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更加合適。
很明顯,Spring Cloud的功能比DUBBO更增強大,涵蓋面更廣,並且做爲Spring的拳頭項目,它也可以與Spring Framework、Spring Boot、Spring Data、Spring Batch等其餘Spring項目完美融合,這些對於微服務而言是相當重要的。使用Dubbo構建的微服務架構就像組裝電腦,各環節咱們的選擇自由度很高,可是最終結果頗有可能由於一條內存質量不行就點不亮了,老是讓人不怎麼放心,可是若是你是一名高手,那這些都不是問題;而Spring Cloud就像品牌機,在Spring Source的整合下,作了大量的兼容性測試,保證了機器擁有更高的穩定性,可是若是要在使用非原裝組件外的東西,就須要對其基礎有足夠的瞭解。
問題:曾風靡國內的開源 RPC 服務框架 Dubbo 在重啓維護後,令許多用戶爲之雀躍,但同時,也迎來了一些質疑的聲音。互聯網技術發展迅速,Dubbo 是否還能跟上時代?Dubbo 與 Spring Cloud 相比又有何優點和差別?是否會有相關舉措保證 Dubbo 的後續更新頻率?
人物:Dubbo重啓維護開發的劉軍,主要負責人之一;劉軍,阿里巴巴中間件高級研發工程師,主導了 Dubbo 重啓維護之後的幾個發版計劃,專一於高性能 RPC 框架和微服務相關領域。曾負責網易考拉 RPC 框架的研發及指導在內部使用,參與了服務治理平臺、分佈式跟蹤系統、分佈式一致性框架等從無到有的設計與開發過程。
Distributed/versioned configuration(分佈式/版本控制配置)
Service registration and discovery(服務註冊與發現)
Service-to-service calls(服務到服務的調用)
Load balancing(負載均衡配置)
Circuit Breakers(斷路器)
Distributed messaging(分佈式消息管理)
官方:https://spring.io/projects/spring-cloud
參考:https://www.springcloud.cc/spring-cloud-netflix.html
API:https://www.springcloud.cc/spring-cloud-dalston.html
https://spring.io/projects/spring-cloud
中文版:https://www.springcloud.cc/
服務的註冊與發現(Eureka) 服務消費者(rest+Ribbon) 服務消費者(Feign) 斷路器(Hystrix) 斷路器監控(Hystrix Dashboard) 分佈式配置中心(Spring Cloud Config) 消息總線(Spring Cloud Bus) 服務鏈路追蹤(Spring Cloud Sleuth) |
參考文檔:
https://spring.io/microservices
https://spring.io/projects/spring-cloud
https://www.springcloud.cc/spring-cloud-netflix.html