(轉)阿里巴巴分佈式服務框架 Dubbo 團隊成員梁飛專訪

Dubbo是阿里巴巴內部的SOA服務化治理方案的核心框架,天天爲2000+ 個服務提供3,000,000,000+ 次訪問量支持,並被普遍應用於阿里巴巴集團的各成員站點。Dubbo自2011年開源後,已被許多非阿里系公司使用。

項目主頁: http://code.alibabatech.com/wiki/display/dubbo/Home-zh

爲了使你們對該框架有一個深刻的瞭解,本期咱們採訪了Dubbo團隊主要開發人員之一 梁飛

ITeye期待並致力於爲國內優秀的開源項目提供一個免費的推廣平臺,若是你和你的團隊但願將本身的開源項目介紹給更多的開發者,或者你但願咱們對哪些開源項目進行專訪,請告訴咱們,發站內短信給ITeye管理員或者發郵件到webmaster@iteye.com便可。

先來個自我介紹吧! Top

我叫梁飛,花名虛極,以前負責Dubbo服務框架,現已調到天貓。

個人博客: http://javatar.iteye.com

Dubbo是什麼?能作什麼? Top

Dubbo是一個分佈式服務框架,以及SOA治理方案。其功能主要包括:高性能NIO通信及多協議集成,服務動態尋址與路由,軟負載均衡與容錯,依賴分析與降級等。

可參見: http://code.alibabatech.com/wiki/display/dubbo/Home-zh

Dubbo適用於哪些場景? Top

當網站變大後,不可避免的須要拆分應用進行服務化,以提升開發效率,調優性能,節省關鍵競爭資源等。

當服務愈來愈多時,服務的URL地址信息就會爆炸式增加,配置管理變得很是困難,F5硬件負載均衡器的單點壓力也愈來愈大。

當進一步發展,服務間依賴關係變得錯蹤複雜,甚至分不清哪一個應用要在哪一個應用以前啓動,架構師都不能完整的描述應用的架構關係。

接着,服務的調用量愈來愈大,服務的容量問題就暴露出來,這個服務須要多少機器支撐?何時該加機器?等等……

在遇到這些問題時,均可以用Dubbo來解決。

可參見: http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-GettingStarted

Dubbo的設計思路是什麼? Top

該框架具備極高的擴展性,採用微核+插件體系,而且文檔齊全,很方便二次開發,適應性極強。

可參見: http://code.alibabatech.com/wiki/display/dubbo/Developer+Guide#DeveloperGuide-FrameworkDesign

Dubbo的需求和依賴狀況? Top

Dubbo運行JDK1.5之上,缺省依賴javassist、netty、spring等包,但不是必須依賴,經過配置Dubbo可不依賴任何三方庫運行。

可參見: http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-Dependency

Dubbo的性能如何? Top

Dubbo經過長鏈接減小握手,經過NIO及線程池在單鏈接上併發拼包處理消息,經過二進制流壓縮數據,比常規HTTP等短鏈接協議更快。在阿里巴巴內部,天天支撐2000多個服務,30多億訪問量,最大單機支撐天天近1億訪問量。

可參見: http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-PerformanceTestReport

和淘寶HSF相比,Dubbo的特色是什麼? Top

1.  Dubbo比HSF的部署方式更輕量,HSF要求使用指定的JBoss等容器,還須要在JBoss等容器中加入sar包擴展,對用戶運行環境的侵入性大,若是你要運行在Weblogic或Websphere等其它容器上,須要自行擴展容器以兼容HSF的ClassLoader加載,而Dubbo沒有任何要求,可運行在任何Java環境中。

2.  Dubbo比HSF的擴展性更好,很方便二次開發,一個框架不可能覆蓋全部需求,Dubbo始終保持平等對待第三方理念,即全部功能,均可以在不修改Dubbo原生代碼的狀況下,在外圍擴展,包括Dubbo本身內置的功能,也和第三方同樣,是經過擴展的方式實現的,而HSF若是你要加功能或替換某部分實現是很困難的,好比支付寶和淘寶用的就是不一樣的HSF分支,由於加功能時改了核心代碼,不得不拷一個分支單獨發展,HSF現階段就算開源出來,也很難複用,除非對架構重寫。

3.  HSF依賴比較多內部系統,好比配置中心,通知中心,監控中心,單點登陸等等,若是要開源還須要作不少剝離工做,而Dubbo爲每一個系統的集成都留出了擴展點,並已梳理幹清全部依賴,同時爲開源社區提供了替代方案,用戶能夠直接使用。

4.  Dubbo比HSF的功能更多,除了ClassLoader隔離,Dubbo基本上是HSF的超集,Dubbo也支持更多協議,更多註冊中心的集成,以適應更多的網站架構。

Dubbo在安全機制方面是如何解決的? Top

Dubbo主要針對內部服務,對外的服務,阿里有開放平臺來處理安全和流控,因此Dubbo在安全方面實現的功能較少,基本上只防君子不防小人,只防止誤調用。

Dubbo經過Token令牌防止用戶繞過註冊中心直連,而後在註冊中心上管理受權。Dubbo還提供服務黑白名單,來控制服務所容許的調用方。

可參見: http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-TokenVerify

Dubbo在阿里巴巴內部以及外部的應用狀況? Top

在阿里內部,除淘系之外的其它阿里子公司,都在使用Dubbo,包括:中文主站,國際主站,AliExpress,阿里雲,阿里金融,阿里學院,良無限,來往等等。

開源後,已被:去哪兒,京東,吉利汽車,方正證劵,海爾,焦點科技,中潤四方,華新水泥,海康威視,等公司普遍使用,並不停的有新公司加入,社區討論及貢獻活躍,獲得用戶很高的評價。

可參見: http://code.alibabatech.com/wiki/display/dubbo/Community#Community-KnownUsers

在分佈式事務、多語言支持方面,Dubbo的計劃是什麼? Top

分佈式事務可能暫不會支持,由於若是隻是支持簡單的XA/JTA兩階段提交事務,實用性並不強。用戶能夠自行實現業務補償的事件,或更復雜的分佈式事務,Dubbo有不少擴展點能夠集成。

在多語言方面,Dubbo實現了C++版本,但在內部使用面極窄,沒有獲得很強的驗證,而且C++開發資源緊張,沒有精力準備C++開源事項。

Dubbo採用的開源協議?商業應用應該注意哪些事項? Top

Dubbo採用Apache License 2.0開源協議,它是一個商業友好的協議,你能夠免費用於非開源的商業軟件中。

你能夠對它進行改造和二次發佈,只要求保留阿里的著做權,並在再發布時保留原始許可聲明。

可參見: http://code.alibabatech.com/wiki/display/dubbo/Download#Download-License

Dubbo開發團隊狀況? Top

Dubbo共有六個開發人員參與開發和測試,每個開發人員都是頗有經驗,團隊合做很默契,開發過程也頗有節奏,有完善質量保障流程。團隊組成:

  • 梁飛 (開發人員/產品管理)
  • 劉昊旻 (開發人員/過程管理)
  • 劉超 (開發人員/用戶支持)
  • 李鼎 (開發人員/用戶支持)
  • 陳雷 (開發人員/質量保障)
  • 閭剛 (開發人員/開源運維)

從左至右:劉超,梁飛,閭剛,陳雷,劉昊旻,李鼎

可參見: http://code.alibabatech.com/wiki/display/dubbo/Community-zh

其餘開發者如何參與?能夠作哪些工做? Top

開發者能夠在Github上fork分支,而後將修改push過來,咱們審覈並測試後,會合併到主幹中。

Github地址: https://github.com/alibaba/dubbo

開發者能夠在JIRA上認領小的BUG修復,也能夠在開發者指南頁面領取大的功能模塊。

JIRA: http://code.alibabatech.com/jira/browse/DUBBO

開發者指南: http://code.alibabatech.com/wiki/display/dubbo/Developer+Guide-zh

Dubbo將來的發展計劃? Top

Dubbo的RPC框架已基本穩定,將來的重心會放在服務治理上,包括架構分析、監控統計、降級控制、流程協做等等。

可參見: http://code.alibabatech.com/wiki/display/dubbo/Roadmap-zh
相關文章
相關標籤/搜索