阿里重啓維護Dubbo了

嘉賓|羅毅
編輯|雨多田光

2012 年,阿里巴巴在 GitHub 上開源了基於 Java 的分佈式服務治理框架 Dubbo,以後它成爲了國內該類開源項目的佼佼者,許多開發者對其表示青睞,同時,前後有很多公司在實踐中基於 Dubbo 進行分佈式系統架構。目前在 GitHub 上,它的 fork、star 數均已破萬。git

今年 9 月底,同爲阿里開源的項目 RocketMQ 被 Apache 社區接納爲頂級項目;10 月中旬,OpenMessaging、ApsaraCache 等全球化開源項目在阿里雲棲大會正式公佈;同時,Dubbo 也被列入重點維護開源項目,指望繼續保持快速發展的態勢。github

阿里這一系列開源項目的成績,讓人們看到了它對於開源這件事的重視,重啓維護 Dubbo 的背後,有什麼樣的思考呢?InfoQ 就此採訪了 Dubbo 負責人、阿里巴巴中間件高級技術專家羅毅。數據庫

InfoQ:爲何重啓維護?有哪些因素在驅動着?json

羅毅:Dubbo 自開源以來,深受國內友商和開源愛好者的青睞,雖然一直陸續在維護,可是因爲 Dubbo 用戶羣體龐大,平常維護根本沒法徹底知足社區的旺盛需求。隨着集團內部技術水平的迅速發展,現在不只可以保證集團及客戶的系統高效運行,還能抽調更多精力將技術賦能給全社會。微信

開源就是阿里巴巴集團在技術層面賦能的重要領域。阿里巴巴中間件團隊從此不只要聆聽社區的聲音,及時修復問題,及時合併優秀的 pull request,還會力爭將 Dubbo 打形成有國際影響力的 RPC 框架。架構

從集團層面看,阿里爲國內甚至國際開源社區貢獻了大量優秀開源項目,如你們熟知的 RocketMQ、JStorm、Fastjson、Dubbo、Weex 等。在今年的雲棲大會上,阿里集團公開宣佈了將加大技術投入、擁抱開源的發展策略。正是因爲以上幾個緣由,阿里巴巴中間件團隊決定 Dubbo 的下一步計劃是持續發展,並走向國際化。app

InfoQ:咱們知道阿里內部如今基本上沒有在使用 Dubbo,而是用了 Dubbo 以後開發的第三代 RPC 服務框架 HSF(High-speed Service Framework),那如今還將 Dubbo 重啓維護,你們難免疑惑。框架

羅毅:Dubbo 和 HSF 都是阿里巴巴集團自研的 RPC 服務框架,在不一樣時期都很好的支持了集團業務的發展。目前,HSF2 主要服務於集團內部業務,而 Dubbo2 主要以開源的形式服務社會,它們之間的關係與 Google 內部使用的 Stubby 和開源的 gRPC 相似。運維

從功能及使用方式上來講,HSF2 和 Dubbo2 都是十分優秀的 RPC 框架,都能很好地知足搭建分佈式服務化系統的訴求。內部堅持使用 HSF2 而不是開源版本的 Dubbo2 與業務屬性規模有關。分佈式

此外也出於如下幾方面的考慮:內部統一技術框架、統一運維方面的訴求,應用遷移成本,內部服務註冊發現、配置推送以及鏈路追蹤等外圍系統的集成度等。總的來講,HSF2 在服務治理、超大規模集羣、多機房幾個方面比 Dubbo2 更有優點,而且在使用層面保持了對 Dubbo2 的兼容性。

爲何咱們還要重啓 Dubbo 的維護呢?

道理和 Google 開源 gRPC 是同樣的。開源不只僅是賦能社會的方式,咱們也能夠經過社區反饋提高產品和技術能力。

Dubbo2 做爲一款優秀的開源產品,因爲面向的用戶羣體很是普遍,這就決定了它的設計原則強調擴展性、使用輕量、以及對開源外圍系統和協議的適配。經過開源社區的建議,目前 Dubbo 已經具有了一些特有功能,例如對 REST 的支持和對 Spring Boot 的集成。

值得注意的是,目前負責 Dubbo 的團隊和內部負責 HSF 的是同一個團隊,在聆聽外部用戶反饋之餘,咱們也會把大規模領域裏的服務運維經驗反哺回 Dubbo 社區,造成良性循環,作到真正意義上的內外統一。

InfoQ:那這麼多年過去了,如今 Dubbo 在同類型項目中還存在優點嗎?

羅毅: Dubbo 目前在 GitHub 上有超過 12000 個 star 和超過 10000 的 fork 數,仍然是國內影響力最大的開源項目之一。這其中有兩個重要因素,一個是 RPC 領域相對成熟,自 Dubbo 開源的第一天起,框架裏已經融合了阿里巴巴服務化改造進程中沉澱下來的諸多寶貴經驗

其二是 Dubbo 設計上十分提倡可擴展性,在框架內置功能不能知足業務訴求甚至過期的狀況下,用戶能夠選擇自行擴展。這一點,從友商給咱們提交來的 pull request 中能夠明顯感覺到,優秀的框架設計自己就能夠很好的支持用戶變幻無窮的需求

Dubbo 維護重啓後,3 個月內連續發佈 3 個維護版本,不只修復了優雅停機、註解配置等一些框架缺陷,還新增了 Netty4 通訊模塊和線程堆棧 dump 特性等。在框架穩定性上已經有了大幅提高,從此 Dubbo 將持續保持快速迭代更新,以知足用戶的各類需求。

InfoQ:如您所說,這個開源項目,不少代碼貢獻者和框架採用者其實提交了很多有意義的反饋,近期 Dubbo 官方一連給出的這三個版本更新,其中意義最大、你們最想看到的更新內容是什麼呢?

羅毅: 的確,做爲國內使用面最廣的服務框架的表明,不少用戶都貢獻了在使用過程當中發現的問題和建議。咱們目前優先級最高的任務就是在其中遴選社區關注度最高的問題和建議優先給予支持,其中包括 issue 的修復、第三方依賴的升級、新技術新規範的適配、以及功能上的優化等。

已經發布的版本中咱們篩選了社區反饋的框架缺陷、pull request 等,按照優先級順序修復,保證框架的可用性和穩定性,並同時更新了主頁 (http://dubbo.io/) 和文檔 (https://www.gitbook.com/@dubbo)。最近即將發佈的版本中完善了註解形式的配置、Docker 環境中部署的問題等幾個社區呼聲較高的需求。

目前團隊最大的任務就是活躍社區,聆聽用戶的聲音,已經發布的三個版本以及將來的幾個維護版本都是圍繞這個話題進行。

InfoQ:阿里對 Dubbo 接下來的發展有怎樣的計劃?可否給你們一個清晰的視圖?

羅毅: 主力開發以阿里巴巴中間件團隊爲主,優先吸納集團內部對 Dubbo 開源有熱情的開發同窗,同時積極與國內大量使用 Dubbo 框架的友商聯繫。一方面是合併你們的建議,對呼聲最高的建議進行性能提高,另外一方面是尋求共建開源項目的資源。總的來講,項目方面會以阿里內部專門的團隊爲主,並積極發展社區中的 committer。

在活躍社區的前提下,咱們會繼續在 Dubbo 框架現代化、國際化這兩個大的方向上進行探索。現代化方面主要是考慮到目前微服務架構以及容器化日漸流行的大趨勢,Dubbo 做爲 RPC 框架如何很好地融入其中,成爲其生態體系中不可或缺的一個組件。

這裏就不得不提到目前的一些文章在談到微服務的時候老是拿 Spring Cloud 和 Dubbo 來對比,須要強調的是 Dubbo 將來的定位並非要成爲一個微服務的全面解決方案,而是專一在 RPC 領域,成爲微服務生態體系中的一個重要組件。至於你們關注的微服務化衍生出的服務治理需求,咱們會在 Dubbo 積極適配開源解決方案,甚至啓動獨立的開源項目予以支持。

對於國際化方面的思考是雖然 Dubbo 在 GitHub 上很是受歡迎,可是受衆主要來自國內各友商以及我的開發者,但願未來可以將用戶拓展到全球,表明國人在 RPC 領域與 gRPC、Finagle 等競爭。

最後,感謝 InfoQ 對 Dubbo 開源項目的關注。有關 Dubbo 項目從此的發展,還請密切關注 GitHub 上的 Release Notes(https://github.com/alibaba/dubbo/releases)以及 Dubbo 的雲棲社區專欄。

More

中小型研發團隊如何實踐微服務架構?

爲何Google不存在Docker鏡像體積太大的問題?

其它

國際化架構體系架構、大數據平臺架構、微服務架構、數據庫架構等等,在這場全球架構師峯會裏,咱們邀請到 Microsoft、Google、Facebook、Twitter、Uber、Tumblr、Twitch、Snapchat 等資深架構師爲你一一解惑。目前大會 9 折報名中,上百個技術案例,歡迎點擊 閱讀原文 瞭解。

本文分享自微信公衆號 - 技術原始積累(gh_805ebfd2deb0)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索