03.07 誰能全面地說一下Dubbo和Spring Cloud什麼區別?

珍惜內女人


dubbo框架呢是遠程調用的一種框架,而SpringCloud呢是一個微服務框架的一個整合,對SOA和微服務天然友好,下面從5個方面說一下2者的區別:

1.出身背景

dubbo是出自阿里開源的一個RPC遠程服務化治理框架,現在呢已經交個阿帕奇了,是阿帕奇的頂級項目,開源以後受到了廣大科技領域的廣泛支持,官網是

dubbo.apache.org在GitHub上很受歡迎。

SpringCloud是Spring的一個頂級項目,與Spring Boot、Spring Data位於同一位置。

Spring Cloud對微服務基礎框架Netflix的多個開源組件進行了封裝,同時又實現了和雲端平臺以及和Spring Boot開發框架的集成,提供了一整套分佈式系統解決方案,使開發者可以快速的啟動服務或構建應用、同時能夠快速和雲平臺資源進行對接。

SpringCloud有很多的子項目,是對Netflix的多個開源組件進行了封裝,可以從下圖來了解

2.活躍度

社區活躍度:從GitHub上可以看出2者相差不多,但是SpringCloud相對更活躍一些,畢竟是近幾年剛流行的技術。

從指數來看dubbo相對高一些。

3.性能

dubbo前身是阿里系的產品,性能呢肯定經過檢驗的,尤其是貢獻給阿帕奇之後更是得到了廣大程序愛好者的支持。而SpringCloud是近幾年剛開始流行的一套框架,曾經有一篇文章分別對dubbo和SpringCloud的性能做了測試,如下圖:

從圖片上的數據我們可以看出dubbo的性能測試還是要高於SpringCloud的。

4.文檔說明

dubbo的文檔比較全面,基本上都是中文,而SpringCloud的中文文檔較少,隨著時間的延長,SpringCloud也會有相應的中文文檔,時間問題。

5.功能

從上圖可以看出,dubbo和SpringCloud的功能的兼容性,這裡呢只是一個比較,具體的實施呢,還要看項目的類型和產品的需要。

從以上5個方面比較了dubbo和SpringCloud兩者之間的區別,希望對題主有幫助,小冷呢也是一個程序員,有需要SpringCloud教程的同學可以關注小冷的頭條號,給我私信,我會一一發個大家!


小冷的時間軸


兩者不是一個東西,但是在概念和功能上確實有交叉。

Dubbo準確地說,是一個RPC框架。在早期,RPC框架只是起一個代理的作用,用來做多語言之間的相互調用,或者多個系統之間的相互調用。這個階段的RPC都比較簡單,比如HPRose框架。Dubbo的創新或者說獨特之處在於他對RPC的功能做了擴展,加上了比如監控,服務註冊發現,以及流控,集群等功能。

Spring Cloud是一個更復雜,完成度更高的微服務框架,它不僅僅有RPC功能(用的HTTP協議),還具有網關,流控,熔斷,監控等功能。

所以說,Dubbo實現了Spring Cloud裡面的一部分功能,主要是RPC功能,但是在流控和熔斷方面做的不多。和Spring Cloud對比的是Alibaba Cloud,而不是Dubbo.


總結:Dubbo只是微服務裡面的一環(雖然是最重要的一環),而Spring Cloud是一個微服務的完整框架。


互聯網活化石


還是瞭解下微服務和分佈式開發過程中會產生什麼問題,總的來說就是服務器間通信,服務器的管理,服務不可用降級,事物等等一堆問題要解決,dubbo是遠程調用工具,只解決了分佈式服務器之間的通信問題,用zookepper又能解決分佈式服務的一些其他問題,但還有一系列等等麻煩的分佈式開發難點,需要自己解決。dubbo交給了Apache,相信將來不久應該會有一整套分佈式解決方案。springcloud是一整套的微服務解決方案,跟springboot一樣,是一個約束,規定了微服務開發中問題的解決接口,組件化解決方案,優化升級簡易方便,可以由第三方通過實現接口自己實現想要的功能,現在也有許多優秀的開源組建,開箱即用,簡單方便,而且換個依賴不用改代碼就能使用其他springcloud組建,總的來說springboot使開發快速,springcloud使微服務簡單。


分享到:


相關文章: