javascript
Spring Cloud与Duddo比较(非原创)
文章大綱
一、Spring Cloud與Duddo背景介紹
二、Spring Cloud與Duddo比較
三、參考文章
一、Spring Cloud與Duddo背景介紹
??國內(nèi)技術(shù)人員喜歡拿 Dubbo 和 Spring Cloud 進(jìn)行對(duì)比,是因?yàn)閮烧叨际欠?wù)治理非常優(yōu)秀的開源框架。但它們兩者的出發(fā)點(diǎn)是不一樣的,Dubbo 關(guān)注于服務(wù)治理這塊并且以后也會(huì)繼續(xù)往這個(gè)方向去發(fā)展,Spring Cloud 關(guān)注的是微服務(wù)的全套解決方案,服務(wù)治理也只是微服務(wù)生態(tài)的一部分而已。因此可以大膽的斷定,Dubbo 未來會(huì)在服務(wù)治理方面更為出色,而 Spring Cloud 在微服務(wù)治理上面無人能敵。
??隨著Dubbo成為Apache孵化項(xiàng)目,而且Alibaba重新啟動(dòng)維護(hù)Dubbo,Spring Cloud整合Dubbo是必然的,目前已經(jīng)在Github上。
??同時(shí)阿里巴巴已經(jīng)推出了Spring Cloud Alibaba項(xiàng)目由兩部分組成:阿里巴巴開源組件和阿里云產(chǎn)品組件,旨在為Java開發(fā)人員在使用阿里巴巴產(chǎn)品的同時(shí),通過利用 Spring 框架的設(shè)計(jì)模式和抽象能力,注入Spring Boot和Spring Cloud的優(yōu)勢(shì)。
??Dubbo,是阿里巴巴服務(wù)化治理的核心框架,并被廣泛應(yīng)用于阿里巴巴集團(tuán)的各成員站點(diǎn)。阿里巴巴近幾年對(duì)開源社區(qū)的貢獻(xiàn)不論在國內(nèi)還是國外都是引人注目的,比如:JStorm捐贈(zèng)給Apache并加入Apache基金會(huì)等,為中國互聯(lián)網(wǎng)人爭(zhēng)足了面子,使得阿里巴巴在國人眼里已經(jīng)從電商升級(jí)為一家科技公司了。
??Spring Cloud,從命名我們就可以知道,它是Spring Source的產(chǎn)物,Spring社區(qū)的強(qiáng)大背書可以說是Java企業(yè)界最有影響力的組織了,除了Spring Source之外,還有Pivotal和Netfix是其強(qiáng)大的后盾與技術(shù)輸出。其中Netflix開源的整套微服務(wù)架構(gòu)套件是Spring Cloud的核心。
??如果拿Dubbo與Netflix套件做對(duì)比,前者在國內(nèi)影響力較大,后者在國外影響力較大,但是若要與Spring Cloud做對(duì)比,由于Spring Source的加入,在背書上,Spring Cloud略勝一籌。不過,英雄不問出處,在背景這一點(diǎn)上,不能作為選擇框架的主要因素,當(dāng)您一籌莫展的時(shí)候,可以作為參考依據(jù)。
??dubbo由于是二進(jìn)制的傳輸,占用帶寬會(huì)更少,springCloud是http協(xié)議傳輸,帶寬會(huì)比較多,同時(shí)使用http協(xié)議一般會(huì)使用JSON報(bào)文,消耗會(huì)更大。
??dubbo的開發(fā)難度較大,原因是dubbo的jar包依賴問題很多大型工程無法解決,springcloud的接口協(xié)議約定比較自由且松散,需要有強(qiáng)有力的行政措施來限制接口無序升級(jí)。
??dubbo的注冊(cè)中心可以選擇zk,redis等多種,springcloud的注冊(cè)中心只能用eureka或者自研。
二、Spring Cloud與Duddo比較
1. 公司的背景
??Dubbo,是阿里巴巴服務(wù)化治理的核心框架,并被廣泛應(yīng)用于中國各互聯(lián)網(wǎng)公司;Spring Cloud是大名鼎鼎的Spring家族的產(chǎn)品。阿里巴巴是一個(gè)商業(yè)公司,雖然也開源了很多的頂級(jí)的項(xiàng)目,但從整體戰(zhàn)略上來講,仍然是服務(wù)于自身的業(yè)務(wù)為主。Spring專注于企業(yè)級(jí)開源框架的研發(fā),不論是在中國還是在世界上使用都非常廣泛,開發(fā)出通用、開源、穩(wěn)健的開源框架就是他們的主業(yè)。
2. 系統(tǒng)結(jié)構(gòu)簡易程序
??springcloud的系統(tǒng)結(jié)構(gòu)更簡單、“注冊(cè)+springmvc=springcloud”,而dubbo各種復(fù)雜的Url,protocol,register,invocation,dubbofilter,dubboSPI,dubbo序列化..........炫技的成分更多一些
3. 開發(fā)難易度
??Duddo的神坑是jar包依賴,開發(fā)階段難度極大。springcloud比較自由,但帶來的問題是無法“強(qiáng)力約束接口規(guī)范”。
??從后續(xù)改進(jìn):dubbo的改進(jìn)是通過dubbofilter,很多東西沒有,需要自己繼承,如監(jiān)控,如日志,如限流,如追蹤。springcloud自己帶了很多監(jiān)控、限流措施,但是功能可能和歐美習(xí)慣相同,國內(nèi)需要進(jìn)行適當(dāng)改造,但更簡單,就是ServletFilter而已,但是總歸比dubbo多一些東西是好的
4. 配套措施
??springcloud一直宣稱自己是“一套全方面的解決方案”。。。。。。我起初信了,后來發(fā)現(xiàn)上當(dāng)了,實(shí)話說:有,但是不是很健全,100分打50的樣子,很多你還需要改造。而DUBBO相反,一直宣稱自己是“一套全方面的服務(wù)化方案”。。。。。。純服務(wù)化頂個(gè)鳥用,任何系統(tǒng)都是相輔相成配套的,一個(gè)完整的系統(tǒng),要有前臺(tái)、中臺(tái)、后臺(tái)、前臺(tái)包括前端和交互,中臺(tái)包括交易、任務(wù)、數(shù)據(jù),后臺(tái)包括財(cái)務(wù)、賬戶、管理...........單純的服務(wù)化解決不了“任何問題”,唯有體系才能解決。在這個(gè)層面,springcloud是個(gè)往“體系”方向發(fā)展的方案,而dubbo僅是個(gè)工具而已,兩者相比,就好比始祖鳥與草履蟲的區(qū)別。
5. 技術(shù)實(shí)力層面
??對(duì)比雙方的源碼,不得不說dubbo作者的技術(shù)能力要高于springCloud,而springBoot的作者技術(shù)能力要高于dubbo。即:springboot>dubbo>springcloud。我喜歡springboot這種大道至簡的風(fēng)格,keep it simple and stupid。而dubbo好嘛......你先看看dubboSPI,再看看Protocol$Adpative里面那一群繞來繞去的瞎幾把繞的玩意兒,你會(huì)迅速判斷出:這群屌絲在炫技。盡管dubbo從上之下分為十層四五十個(gè)組件,第一感官上是哇塞好全面好偉大的樣子,但深入之后你會(huì)覺得,這技術(shù)是很炫,設(shè)計(jì)的確實(shí)很全面,但是用不到,例如:請(qǐng)各位大神給我解釋一下,在zookeeper地址中,使用逗號(hào)分隔和分號(hào)分隔地址的區(qū)別。。。。。用途不大,但是代碼里為了這個(gè)就走向了“完全不同”的一條分支。用俗語評(píng)價(jià),就是“臃腫且無用代碼過多,在文檔里還非得為了這個(gè)說出123456來”。說完dubbo再說springCloud........它沒有技術(shù)含量,完全沒有,就是一堆簡單組件拼裝在一起,如configserver、eurekaserver、robin、feignClient、htstrix等,每個(gè)都特別簡單,沒什么技術(shù)含量,但我喜歡這種的,就喜歡這種大道至簡的簡單。
6. 社區(qū)活躍度
??Dubbo雖然也是一個(gè)非常優(yōu)秀的服務(wù)治理框架,并且在服務(wù)治理、灰度發(fā)布、流量分發(fā)這方面做的比Spring Cloud還好,除過當(dāng)當(dāng)網(wǎng)在基礎(chǔ)上增加了rest支持外,已有兩年多的時(shí)間幾乎都沒有任何更新了。在使用過程中出現(xiàn)問題,提交到github的Issue也少有回復(fù)。
??相反Spring Cloud自從發(fā)展到現(xiàn)在,仍然在不斷的高速發(fā)展,從github上提交代碼的頻度和發(fā)布版本的時(shí)間間隔就可以看出,現(xiàn)在Spring Cloud即將發(fā)布2.0版本,到了后期會(huì)更加完善和穩(wěn)定。
7. 架構(gòu)完整度
??Dubbo框架只是專注于服務(wù)之間的治理,如果我們需要使用配置中心、分布式跟蹤這些內(nèi)容都需要自己去集成,這樣無形中使用dubbo的難度就會(huì)增加。Spring Cloud幾乎考慮了服務(wù)治理的方方面面,更有Spring Boot這個(gè)大將的支持,開發(fā)起來非常的便利和簡單。
8. 性能
??Dubbo的網(wǎng)絡(luò)消耗小于springcloud,但是在國內(nèi)95%的公司內(nèi),網(wǎng)絡(luò)消耗不是什么太大問題,如果真的成了問題,通過壓縮、二進(jìn)制、高速緩存、分段降級(jí)等方法,很容易解
9. 文檔質(zhì)量
??Dubbo的文檔可以說在國內(nèi)開源框架中算是一流的,非常全,并且講解的也非常深入,由于版本已經(jīng)穩(wěn)定不再更新,所以也不太會(huì)出現(xiàn)不一致的情況,另外提供了中文與英文兩種版本,對(duì)于國內(nèi)開發(fā)者來說,閱讀起來更加容易上手,這也是dubbo在國內(nèi)更火一些的原因吧。
??Spring Cloud由于整合了大量組件,文檔在體量上自然要比dubbo多很多,文檔內(nèi)容上還算簡潔清楚,但是更多的是偏向整合,更深入的使用方法還是需要查看其整合組件的詳細(xì)文檔。另外由于Spring Cloud基于Spring Boot,很多例子相較于傳統(tǒng)Spring應(yīng)用要簡單很多(因?yàn)樽詣?dòng)化配置,很多內(nèi)容都成了約定的默認(rèn)配置),這對(duì)于剛接觸的開發(fā)者可能會(huì)有些不適應(yīng),比較建議了解和學(xué)習(xí)Spring Boot之后再使用Spring Cloud,不然可能會(huì)出現(xiàn)很多一知半解的情況。
??雖然Spring Cloud的文檔量大,但是如果使用Dubbo去整合其他第三方組件,實(shí)際也是要去閱讀大量第三方組件文檔的,所以在文檔量上,我覺得區(qū)別不大。對(duì)于文檔質(zhì)量,由于Spring Cloud的迭代很快,難免會(huì)出現(xiàn)不一致的情況,所以在質(zhì)量上我認(rèn)為Dubbo更好一些。而對(duì)于文檔語言上,Dubbo自然對(duì)國內(nèi)開發(fā)團(tuán)隊(duì)來說更有優(yōu)勢(shì)。
10. 總結(jié)
?? spring cloud整機(jī),dubbo需要自己組裝;整機(jī)的性能有保證,組裝的機(jī)子更自由。
三、參考文章
轉(zhuǎn)載于:https://www.cnblogs.com/WUXIAOCHANG/p/10913087.html
總結(jié)
以上是生活随笔為你收集整理的Spring Cloud与Duddo比较(非原创)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Angular中的routerLink
- 下一篇: (入门SpringBoot)Spring