阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访
生活随笔
收集整理的這篇文章主要介紹了
阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
專家訪談 先來個自我介紹吧! Dubbo是什么?能做什么?? Dubbo適用于哪些場景?? Dubbo的設計思路是什么?? Dubbo的需求和依賴情況? Dubbo的性能如何?? 和淘寶HSF相比,Dubbo的特點是什么? Dubbo在安全機制方面是如何解決的?? Dubbo在阿里巴巴內部以及外部的應用情況? 在分布式事務、多語言支持方面,Dubbo的計劃是什么? Dubbo采用的開源協議?商業應用應該注意哪些事項?? Dubbo開發團隊情況? 其他開發者如何參與?可以做哪些工作? Dubbo未來的發展計劃?? Dubbo是阿里巴巴內部的SOA服務化治理方案的核心框架,每天為2000+ 個服務提供3,000,000,000+ 次訪問量支持,并被廣泛應用于阿里巴巴集團的各成員站點。Dubbo自2011年開源后,已被許多非阿里系公司使用。
項目主頁:http://code.alibabatech.com/wiki/display/dubbo/Home-zh
為了使大家對該框架有一個深入的了解,本期我們采訪了Dubbo團隊主要開發人員之一梁飛。
歡迎大家推薦更多開源項目給我們,支持中國的開源項目發展,如果您和您的團隊希望展示創業理念和有趣之處,或者有朋友正在創造這樣的價值,請聯系我們,發信到blog@csdn.com即可。
我叫梁飛,花名虛極,之前負責Dubbo服務框架,現已調到天貓。
我的博客:http://javatar.iteye.com
Dubbo是一個分布式服務框架,以及SOA治理方案。其功能主要包括:高性能NIO通訊及多協議集成,服務動態尋址與路由,軟負載均衡與容錯,依賴分析與降級等。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Home-zh
當網站變大后,不可避免的需要拆分應用進行服務化,以提高開發效率,調優性能,節省關鍵競爭資源等。
當服務越來越多時,服務的URL地址信息就會爆炸式增長,配置管理變得非常困難,F5硬件負載均衡器的單點壓力也越來越大。
當進一步發展,服務間依賴關系變得錯蹤復雜,甚至分不清哪個應用要在哪個應用之前啟動,架構師都不能完整的描述應用的架構關系。
接著,服務的調用量越來越大,服務的容量問題就暴露出來,這個服務需要多少機器支撐?什么時候該加機器?等等……
在遇到這些問題時,都可以用Dubbo來解決。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-GettingStarted
該框架具有極高的擴展性,采用微核+插件體系,并且文檔齊全,很方便二次開發,適應性極強。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Developer+Guide#DeveloperGuide-FrameworkDesign
Dubbo運行JDK1.5之上,缺省依賴javassist、netty、spring等包,但不是必須依賴,通過配置Dubbo可不依賴任何三方庫運行。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-Dependency
Dubbo通過長連接減少握手,通過NIO及線程池在單連接上并發拼包處理消息,通過二進制流壓縮數據,比常規HTTP等短連接協議更快。在阿里巴巴內部,每天支撐2000多個服務,30多億訪問量,最大單機支撐每天近1億訪問量。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-PerformanceTestReport
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主要針對內部服務,對外的服務,阿里有開放平臺來處理安全和流控,所以Dubbo在安全方面實現的功能較少,基本上只防君子不防小人,只防止誤調用。
Dubbo通過Token令牌防止用戶繞過注冊中心直連,然后在注冊中心上管理授權。Dubbo還提供服務黑白名單,來控制服務所允許的調用方。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-TokenVerify
在阿里內部,除淘系以外的其它阿里子公司,都在使用Dubbo,包括:中文主站,國際主站,AliExpress,阿里云,阿里金融,阿里學院,良無限,來往等等。
開源后,已被:去哪兒,京東,吉利汽車,方正證劵,海爾,焦點科技,中潤四方,華新水泥,海康威視,等公司廣泛使用,并不停的有新公司加入,社區討論及貢獻活躍,得到用戶很高的評價。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Community#Community-KnownUsers
分布式事務可能暫不會支持,因為如果只是支持簡單的XA/JTA兩階段提交事務,實用性并不強。用戶可以自行實現業務補償的事件,或更復雜的分布式事務,Dubbo有很多擴展點可以集成。
在多語言方面,Dubbo實現了C++版本,但在內部使用面極窄,沒有得到很強的驗證,并且C++開發資源緊張,沒有精力準備C++開源事項。
Dubbo采用Apache License 2.0開源協議,它是一個商業友好的協議,你可以免費用于非開源的商業軟件中。
你可以對它進行改造和二次發布,只要求保留阿里的著作權,并在再發布時保留原始許可聲明。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Download#Download-License
Dubbo共有六個開發人員參與開發和測試,每一個開發人員都是很有經驗,團隊合作很默契,開發過程也很有節奏,有完善質量保障流程。團隊組成:
可參見:http://code.alibabatech.com/wiki/display/dubbo/Community-zh
開發者可以在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的RPC框架已基本穩定,未來的重心會放在服務治理上,包括架構分析、監控統計、降級控制、流程協作等等。
目錄(?)[-]
項目主頁:http://code.alibabatech.com/wiki/display/dubbo/Home-zh
為了使大家對該框架有一個深入的了解,本期我們采訪了Dubbo團隊主要開發人員之一梁飛。
歡迎大家推薦更多開源項目給我們,支持中國的開源項目發展,如果您和您的團隊希望展示創業理念和有趣之處,或者有朋友正在創造這樣的價值,請聯系我們,發信到blog@csdn.com即可。
先來個自我介紹吧!
我叫梁飛,花名虛極,之前負責Dubbo服務框架,現已調到天貓。
我的博客:http://javatar.iteye.com
Dubbo是什么?能做什么??
Dubbo是一個分布式服務框架,以及SOA治理方案。其功能主要包括:高性能NIO通訊及多協議集成,服務動態尋址與路由,軟負載均衡與容錯,依賴分析與降級等。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Home-zh
Dubbo適用于哪些場景??
當網站變大后,不可避免的需要拆分應用進行服務化,以提高開發效率,調優性能,節省關鍵競爭資源等。
當服務越來越多時,服務的URL地址信息就會爆炸式增長,配置管理變得非常困難,F5硬件負載均衡器的單點壓力也越來越大。
當進一步發展,服務間依賴關系變得錯蹤復雜,甚至分不清哪個應用要在哪個應用之前啟動,架構師都不能完整的描述應用的架構關系。
接著,服務的調用量越來越大,服務的容量問題就暴露出來,這個服務需要多少機器支撐?什么時候該加機器?等等……
在遇到這些問題時,都可以用Dubbo來解決。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-GettingStarted
Dubbo的設計思路是什么??
該框架具有極高的擴展性,采用微核+插件體系,并且文檔齊全,很方便二次開發,適應性極強。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Developer+Guide#DeveloperGuide-FrameworkDesign
Dubbo的需求和依賴情況?
Dubbo運行JDK1.5之上,缺省依賴javassist、netty、spring等包,但不是必須依賴,通過配置Dubbo可不依賴任何三方庫運行。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-Dependency
Dubbo的性能如何??
Dubbo通過長連接減少握手,通過NIO及線程池在單連接上并發拼包處理消息,通過二進制流壓縮數據,比常規HTTP等短連接協議更快。在阿里巴巴內部,每天支撐2000多個服務,30多億訪問量,最大單機支撐每天近1億訪問量。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-PerformanceTestReport
和淘寶HSF相比,Dubbo的特點是什么?
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在安全機制方面是如何解決的??
Dubbo主要針對內部服務,對外的服務,阿里有開放平臺來處理安全和流控,所以Dubbo在安全方面實現的功能較少,基本上只防君子不防小人,只防止誤調用。
Dubbo通過Token令牌防止用戶繞過注冊中心直連,然后在注冊中心上管理授權。Dubbo還提供服務黑白名單,來控制服務所允許的調用方。
可參見:http://code.alibabatech.com/wiki/display/dubbo/User+Guide#UserGuide-TokenVerify
Dubbo在阿里巴巴內部以及外部的應用情況?
在阿里內部,除淘系以外的其它阿里子公司,都在使用Dubbo,包括:中文主站,國際主站,AliExpress,阿里云,阿里金融,阿里學院,良無限,來往等等。
開源后,已被:去哪兒,京東,吉利汽車,方正證劵,海爾,焦點科技,中潤四方,華新水泥,海康威視,等公司廣泛使用,并不停的有新公司加入,社區討論及貢獻活躍,得到用戶很高的評價。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Community#Community-KnownUsers
在分布式事務、多語言支持方面,Dubbo的計劃是什么?
分布式事務可能暫不會支持,因為如果只是支持簡單的XA/JTA兩階段提交事務,實用性并不強。用戶可以自行實現業務補償的事件,或更復雜的分布式事務,Dubbo有很多擴展點可以集成。
在多語言方面,Dubbo實現了C++版本,但在內部使用面極窄,沒有得到很強的驗證,并且C++開發資源緊張,沒有精力準備C++開源事項。
Dubbo采用的開源協議?商業應用應該注意哪些事項??
Dubbo采用Apache License 2.0開源協議,它是一個商業友好的協議,你可以免費用于非開源的商業軟件中。
你可以對它進行改造和二次發布,只要求保留阿里的著作權,并在再發布時保留原始許可聲明。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Download#Download-License
Dubbo開發團隊情況?
Dubbo共有六個開發人員參與開發和測試,每一個開發人員都是很有經驗,團隊合作很默契,開發過程也很有節奏,有完善質量保障流程。團隊組成:
- ? ??梁飛?(開發人員/產品管理)
- ? ??劉昊旻?(開發人員/過程管理)
- ? ??劉超?(開發人員/用戶支持)
- ? ??李鼎(開發人員/用戶支持)
- ? ??陳雷?(開發人員/質量保障)
- ? ??閭剛?(開發人員/開源運維)
可參見:http://code.alibabatech.com/wiki/display/dubbo/Community-zh
其他開發者如何參與?可以做哪些工作?
開發者可以在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未來的發展計劃??
Dubbo的RPC框架已基本穩定,未來的重心會放在服務治理上,包括架構分析、監控統計、降級控制、流程協作等等。
可參見:http://code.alibabatech.com/wiki/display/dubbo/Roadmap-zh?
轉載于:https://www.cnblogs.com/wangicter/archive/2012/11/14/4767256.html
總結
以上是生活随笔為你收集整理的阿里巴巴分布式服务框架 Dubbo 团队成员梁飞专访的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Argus(ZOJ Problem Se
- 下一篇: 特步鞋带的一字打法