掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
【稿件】最近,開源社區(qū)發(fā)生了一件大事,那個全國 Java 開發(fā)者使用最廣的開源服務(wù)框架 Dubbo 低調(diào)重啟維護(hù),并且 3 個月連續(xù)發(fā)布了 4 個維護(hù)版本。

在網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)中從網(wǎng)站色彩、結(jié)構(gòu)布局、欄目設(shè)置、關(guān)鍵詞群組等細(xì)微處著手,突出企業(yè)的產(chǎn)品/服務(wù)/品牌,幫助企業(yè)鎖定精準(zhǔn)用戶,提高在線咨詢和轉(zhuǎn)化,使成都網(wǎng)站營銷成為有效果、有回報的無錫營銷推廣。成都創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站建設(shè)十載了,客戶滿意度97.8%,歡迎成都創(chuàng)新互聯(lián)客戶聯(lián)系。
[[210451]]
我上次在寫“放棄Dubbo,選擇最流行的Spring Cloud微服務(wù)架構(gòu)實踐與經(jīng)驗總結(jié)”這篇文章的時候,就有很多的網(wǎng)友給我留言說,Dubbo 又開始更新了。
我當(dāng)然是清楚的,我也一直在關(guān)注著 Dubbo 的走向,在幾個月前技術(shù)圈里面就有一個消息說是 Dubbo 又開始更新了,大家議論紛紛不知真?zhèn)巍?/p>
我還專門跑到 GitHub 上面進(jìn)行了留言詢問,最后在 Dubbo 的 gitter 聊天室里面找到了確信的答案,說是正在組建團(tuán)隊。
雖然稍稍有所期待,但也不知道阿里這次拿出了多少的誠意來做這件事,于是我昨天又到 GitHub 逛了一下,發(fā)現(xiàn)從 9 月開始,阿里三個月連著發(fā)布了四個版本,還是非常有誠意的,值得關(guān)注。
Dubbo 簡介
Dubbo 是阿里巴巴公司一個開源的高性能服務(wù)框架,致力于提供高性能和透明化的 RPC 遠(yuǎn)程服務(wù)調(diào)用方案,以及 SOA 服務(wù)治理方案,使得應(yīng)用可通過高性能 RPC 實現(xiàn)服務(wù)的輸出、輸入功能和 Spring 框架無縫集成。
Dubbo 包含遠(yuǎn)程通訊、集群容錯和自動發(fā)現(xiàn)三個核心部分。它提供透明化的遠(yuǎn)程方法調(diào)用,實現(xiàn)像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法,只需簡單配置,沒有任何 API 侵入。
同時它具備軟負(fù)載均衡及容錯機(jī)制,可在內(nèi)網(wǎng)替代 F5 等硬件負(fù)載均衡器,降低成本,減少單點。
它可以實現(xiàn)服務(wù)自動注冊與發(fā)現(xiàn),不再需要寫死服務(wù)提供方地址,注冊中心基于接口名查詢服務(wù)提供者的 IP 地址,并且能夠平滑添加或刪除服務(wù)提供者。
2011 年末,阿里巴巴在 GitHub 上開源了基于 Java 的分布式服務(wù)治理框架 Dubbo,之后它成為了國內(nèi)該類開源項目的佼佼者,許多開發(fā)者對其表示青睞。
同時,先后有不少公司在實踐中基于 Dubbo 進(jìn)行分布式系統(tǒng)架構(gòu)。目前在 GitHub 上,它的 fork、star 數(shù)均已破萬。
Dubbo 核心功能:
Dubbo 發(fā)展史
發(fā)展到開源
2008 年底在阿里內(nèi)部開始規(guī)劃調(diào)用,2009 年初開發(fā) 1.0 版本;2010 年 04 月在 1.0 的版本之上進(jìn)行了重構(gòu),發(fā)布了 2.0 版本;2011 年 10 月阿里宣布將 Dubbo 開源,開源的第一個版本為版本 dubbo-2.0.7。
開源成長
Dubbo 開源之后,框架發(fā)展比較迅速,幾乎兩三個月會發(fā)布一個版本,于 2012 年 3 月 14 號發(fā)布版本 dubbo-2.1.0。
隨后又進(jìn)入另一個快速發(fā)展期,版本發(fā)布頻繁,幾乎每一個月會發(fā)布好幾次。直到 2013 年 3 月 17 號發(fā)布了 dubbo-2.4.10,版本陷入停滯;2014 年 10 月 30 號發(fā)布版本 dubbo-2.4.11,修復(fù)了一個小 Bug,版本又陷入漫長的停滯到現(xiàn)在。
阿里之外的發(fā)展
2014 年的 10 月 20 號,當(dāng)當(dāng)網(wǎng) Fork 了阿里的一個 Dubbo 版本開始維護(hù),并命名為 dubbox-2.8.0。
值得注意的是,當(dāng)當(dāng)網(wǎng)擴(kuò)展 Dubbo 服務(wù)框架支持 REST 風(fēng)格遠(yuǎn)程調(diào)用,并且跟隨著 ZooKeepe 和 Spring 升級了對應(yīng)的版本。之后 Dubbox 一直在小版本維護(hù),2015 年 3 月 31 號發(fā)布了最后一個版本 dubbox-2.8.4。
Dubbo 團(tuán)隊這三個月都做了什么?
目前 Dubbo 的主力開發(fā)以阿里巴巴中間件團(tuán)隊為主,同時在阿里內(nèi)部也招募了一些對 Dubbo 感興趣的同事。
大家要知道,Dubbo 距離今年開始維護(hù)的上一個版本是什么時間發(fā)布的嗎?是 2014 年 10 月 30 號,差了整整將近 3 年,Dubbo 所依賴的 Jdk、Spring、Zookeeper、Zkclient 等等不知道都更新了多少個版本。
因此阿里恢復(fù)更新的第一步就是適配所依賴的各組件版本,讓 Dubbo 所依賴的基礎(chǔ)環(huán)境不要太落伍,另外也 Fixed 掉了一些嚴(yán)重的 Bug。
dubbo-2.5.4/5 版本
2017 年 9 月,阿里發(fā)布了 dubbo-2.5.4/5 版本,更新內(nèi)容如下:
依賴升級
這版在升級相關(guān)依賴版本的同時,以問題反饋頻率和影響面排定優(yōu)先級,優(yōu)先解決了幾個反饋最多、影響較大的一些缺陷,包括優(yōu)雅停機(jī)、異步調(diào)用、動態(tài)配置、MonitorFilter 監(jiān)控統(tǒng)計等問題。
dubbo-2.5.6 版本
2017 年 10 月,阿里發(fā)布了 dubbo-2.5.6 版本,又 Fixed 掉了一大批嚴(yán)重的 Bug。
發(fā)布內(nèi)容主要包括:
dubbo-2.5.7 版本
2017 年 11 月,也就是 12 天前,阿里發(fā)布了 dubbo-2.5.7。這次不但修復(fù)了一批主要的 Bug,還做了一處小功能的完善。
發(fā)布內(nèi)容主要包括:
這次版本發(fā)布內(nèi)容較多,因此還給出了升級建議:
在 2.5.7 版本更新的同時還給出了下一步的預(yù)告,近期即將提供 dubbo-spring-boot-starter 啟動配置模塊。
這個提示說明了兩個事情:
Dubbo 下一步會做什么?
根據(jù)阿里技術(shù)的信息,最近三個版本會做的事情如下:
未來計劃
重構(gòu)動態(tài)配置模塊,動態(tài)配置和注冊中心分離,集成流行的開源分布式配置管理框架,服務(wù)元數(shù)據(jù)注冊與注冊中心分離,豐富元數(shù)據(jù)內(nèi)容,適配流行的 consul etcd 等注冊中心方案。
考慮提供 opentrace、oauth2、metrics、health、gateway 等部分服務(wù)化基礎(chǔ)組件的支持,服務(wù)治理平臺 OPS 重做,除代碼、UI 重構(gòu)外,期望能提供更強(qiáng)的服務(wù)測試、健康檢查、服務(wù)動態(tài)治理等特性。
Dubbo 模塊化,各個模塊可單獨打包、單獨依賴,集群熔斷和自動故障檢測能力。
繼續(xù)在 Dubbo 框架現(xiàn)代化、國際化這兩個大的方向上進(jìn)行探索?,F(xiàn)代化方面主要是考慮到目前微服務(wù)架構(gòu)以及容器化日漸流行的大趨勢,Dubbo 作為 RPC 框架如何很好地融入其中,成為其生態(tài)體系中不可或缺的一個組件。
強(qiáng)調(diào)的是 Dubbo 未來的定位并不是要成為一個微服務(wù)的全面解決方案,而是專注在 RPC 領(lǐng)域,成為微服務(wù)生態(tài)體系中的一個重要組件。
至于大家關(guān)注的微服務(wù)化衍生出的服務(wù)治理需求, Dubbo 將積極適配開源解決方案,甚至啟動獨立的開源項目予以支持。
Dubbo 和 Spring Cloud 有何不同?
首先做一個簡單的功能對比:
從上圖可以看出 Dubbo 的功能只是 Spring Cloud 體系的一部分。
這樣對比是不夠公平的,首先 Dubbo 是 SOA 時代的產(chǎn)物,它的關(guān)注點主要在于服務(wù)的調(diào)用,流量分發(fā)、流量監(jiān)控和熔斷。
而 Spring Cloud 誕生于微服務(wù)架構(gòu)時代,考慮的是微服務(wù)治理的方方面面,另外由于依托了 Spirng、Spirng Boot 的優(yōu)勢之上,兩個框架在開始目標(biāo)就不一致,Dubbo 定位服務(wù)治理、Spirng Cloud 是一個生態(tài)。
如果僅僅關(guān)注于服務(wù)治理的這個層面,Dubbo 還優(yōu)于 Spring Cloud 很多:
下圖為 Dubbo Admin 后臺截圖:
所以 Dubbo 專注于服務(wù)治理,Spring Cloud 關(guān)注于微服務(wù)架構(gòu)生態(tài)。
Dubbo 發(fā)布對 Spring Cloud 有影響嗎?
國內(nèi)技術(shù)人喜歡拿 Dubbo 和 Spring Cloud 進(jìn)行對比,是因為兩者都是服務(wù)治理非常優(yōu)秀的開源框架。
但它們兩者的出發(fā)點是不一樣的,Dubbo 關(guān)注于服務(wù)治理這塊并且以后也會繼續(xù)往這個方向去發(fā)展。
Spring Cloud 關(guān)注的是微服務(wù)治理的生態(tài)。因為微服務(wù)治理的方方面面都是它所關(guān)注的內(nèi)容,服務(wù)治理也只是微服務(wù)生態(tài)的一部分而已。
因此可以大膽的斷定,Dubbo 未來會在服務(wù)治理方面更為出色,而 Spring Cloud 在微服務(wù)治理上面無人能敵。
同時根據(jù) Dubbo 最新的更新技術(shù)來看,Dubbo 也會積極的擁抱開源,擁抱新技術(shù)。
Dubbo 接下來的版本將會很快的支持 Spring Boot,方便我們享受高效開發(fā)的同時,也可以支持高效的服務(wù)調(diào)用。
Dubbo 被廣泛應(yīng)用于中國各互聯(lián)網(wǎng)公司,如今阿里又重新重視起來并且發(fā)布了新版本和一系列的計劃,對于正在使用 Dubbo 的公司來說是一個喜訊,對于中國廣大的開發(fā)者來說更是一件非常喜悅的事情。
我們非常樂于看到中國有一款非常優(yōu)秀的開源框架,讓我們有更多的選擇,有更好的支持。
所以說兩者其實不一定有競爭關(guān)系,如果使用得當(dāng)甚至可以互補(bǔ);另外兩個關(guān)注的領(lǐng)域也不一致,因此對 Spring Cloud 的影響甚微。
Dubbo 和 Spring Cloud 該如何選擇?
可能很多人正在猶豫,在服務(wù)治理的時候應(yīng)該選擇那個框架呢?
如果公司對效率有極高的要求建議使用 Dubbo,相對比 RPC 的效率會比 HTTP 高很多;如果團(tuán)隊不想對技術(shù)架構(gòu)做大的改造建議使用 Dubbo,Dubbo 僅僅需要少量的修改就可以融入到內(nèi)部系統(tǒng)的架構(gòu)中。
但如果技術(shù)團(tuán)隊喜歡挑戰(zhàn)新技術(shù),建議選擇 Spring Cloud,Spring Cloud 架構(gòu)體系有有趣很酷的技術(shù)。
如果公司選擇微服務(wù)架構(gòu)去重構(gòu)整個技術(shù)體系,那么 Spring Cloud 是當(dāng)仁不讓之選,它可以說是目前最好的微服務(wù)框架沒有之一。
最后,技術(shù)選型是一個綜合的問題,需要考慮團(tuán)隊的情況、業(yè)務(wù)的發(fā)展以及公司的產(chǎn)品特征。
最炫最酷的技術(shù)并不一定是最好的,選擇適合自己團(tuán)隊、符合公司業(yè)務(wù)的框架才是最佳方案。技術(shù)的發(fā)展永遠(yuǎn)沒有盡頭,因此我們對技術(shù)也要保持空杯、保持饑餓、保持敬畏!
[[210453]]
張強(qiáng),曾經(jīng)先后在互聯(lián)網(wǎng)金融、第三方支付公司擔(dān)任高級 Java 工程師、架構(gòu)師、技術(shù)經(jīng)理、技術(shù)負(fù)責(zé)人等職務(wù)。在互聯(lián)網(wǎng)金融工作期間,從零參與公司技術(shù)平臺建設(shè),組織平臺進(jìn)行過四次大架構(gòu)升級。目前在一家第三方支付公司做架構(gòu)師,負(fù)責(zé)支付公司大數(shù)據(jù)平臺建設(shè)。
【原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為.com】
名稱欄目:阿里Dubbo瘋狂更新,關(guān)SpringCloud什么事?
分享網(wǎng)址:http://uogjgqi.cn/article/djpcsjd.html

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流