噹噹網開源Dubbox
噹噹網近日開源了Dubbox專案,可為Dubbo服務框架提供多項擴充套件功能,包括REST風格遠端呼叫、Kryo/FST序列化等等。
噹噹網架構部和技術委員會架構師沈理向InfoQ中文站介紹了Dubbox專案,開發背景和主要特點描述如下:
Dubbo是一個被國內很多網際網路公司廣泛使用的開源分散式服務框架,即使從國際視野來看應該也是一個非常全面的SOA基礎框架。作為一個重要的技術研究課題,在噹噹網我們根據自身的需求,為Dubbo實現了一些新的功能,並將其命名為Dubbox(即Dubbo eXtensions)。
主要的新功能包括:
- 支援REST風格遠端呼叫(HTTP + JSON/XML):基於非常成熟的JBoss RestEasy框架,在dubbo中實現了REST風格(HTTP + JSON/XML)的遠端呼叫,以顯著簡化企業內部的跨語言互動,同時顯著簡化企業對外的Open API、無線API甚至AJAX服務端等等的開發。事實上,這個REST呼叫也使得Dubbo可以對當今特別流行的“微服務”架構提供基礎性支援。 另外,REST呼叫也達到了比較高的效能,在基準測試下,HTTP + JSON與Dubbo 2.x預設的RPC協議(即TCP + Hessian2二進位制序列化)之間只有1.5倍左右的差距,詳見下文的基準測試報告。
- 支援基於Kryo和FST的Java高效序列化實現:基於當今比較知名的Kryo和FST高效能序列化庫,為Dubbo 預設的RPC協議新增新的序列化實現,並最佳化調整了其序列化體系,比較顯著的提高了Dubbo RPC的效能,詳見下圖和文件中的基準測試報告。
-
支援基於嵌入式Tomcat的HTTP remoting體系:基於嵌入式tomcat實現dubbo的HTTP remoting體系(即dubbo-remoting-http),用以逐步取代Dubbo中舊版本的嵌入式Jetty,可以顯著的提高REST等的遠端呼叫效能,並將Servlet API的支援從2.5升級到3.1。(注:除了REST,dubbo中的WebServices、Hessian、HTTP Invoker等協議都基於這個HTTP remoting體系)。
-
升級Spring:將dubbo中Spring由2.x升級到目前最常用的3.x版本,減少專案中版本衝突帶來的麻煩。
-
升級ZooKeeper客戶端:將dubbo中的zookeeper客戶端升級到最新的版本,以修正老版本中包含的bug。
上面很多功能已在噹噹網內部穩定的使用,現在開源出來,供大家參考和指正。也希望感興趣的朋友也來為Dubbo貢獻更多的改進。
注:dubbox和dubbo 2.x是相容的,沒有改變dubbo的任何已有的功能和配置方式(除了升級了Spring之類的版本)。另外,dubbox也嚴格遵循了Apache 2.0許可證的要求。
附:分散式服務框架與RPC框架
目前開源領域能找到的分散式服務框架也有不少,比較有代表性的包括Twitter的Finagle(基於Scala語言),Flipkart(印度最大的B2C網站)的Phantom(文件較少),Apache的Tuscany(有點陳舊,而且不是很適合網際網路公司)等等,其實國內也有少數公司提供了開源Java服務框架,但dubbo在其功能完善性、架構優雅性、使用簡便性等方面依然有其相對獨特的優勢,儘管dubbo絕大部分的開發都是2012年以前完成的。
另外,業界的開源RPC框架更是數量眾多,難以計數,但是,一般的RPC框架和我們討論的分散式服務框架還是具有相當大的距離,比如在遠端呼叫的多協議、多序列化支援,完善的服務治理等等方面都有較多的缺失。也正是由於這種缺失,著名的Apache Thrift等框架在這裡也可歸為RPC框架,而主要構建在Thrift之上的Finagle、Phantom等框架更接近於完整的分散式服務框架(當然,Dubbo其實也支援Thrift,只是還不太完善)。
有關沈理
沈理,目前在噹噹網的架構部和技術委員會擔任架構師,主要負責噹噹網的SOA實施(即服務化)以及分散式服務框架的開發。以前也有在BEA、Oracle、Redhat等外企的長期工作經歷,從事過多個不同SOA相關框架和容器的開發。
相關文章
- 網頁資料抓取之噹噹網網頁
- 噹噹架構部總監張亮:玩轉Java開源專案架構Java
- 噹噹網首頁——CSS程式碼CSS
- dubbox rest服務REST
- 噹噹網財報:2013年Q1 噹噹網營收13.338億 淨虧7270萬元營收
- Python爬取噹噹網APP資料PythonAPP
- 噹噹網財報:2013年Q3噹噹網營收達15.259億元 淨虧損2790萬元營收
- 開源網址
- 【Lolttery】專案開發日誌 (五)目標dubbox,前進
- 噹噹網財報:2013年Q4噹噹營收19.719億元 淨利率僅為22.1%營收
- maven+spring+springMVC+mybatis+dubboxMavenSpringMVCMyBatis
- 噹噹網財報:2015年Q3噹噹網營收23.719億元 淨虧損為2810萬元營收
- 噹噹網總裁李國慶:亞馬遜模式不適合中國亞馬遜模式
- 噹噹網財報:2013年Q2噹噹總淨營收為14.935億元 同比增長24%營收
- 噹噹網財報:2011年Q3噹噹網總營收為人民幣9.089億元 淨虧損7340萬元營收
- 噹噹網財報:2012年Q1噹噹網營收為人民幣10.836億元 淨虧損為9950萬元營收
- 噹噹網財報:2011年Q4噹噹營收12億元 淨虧損人民幣1.3億元營收
- 噹噹狸智慧顯微鏡 網友:讓孩子“發現”世界
- 噹噹網計劃3年開千家實體書店 稱並非借鑑亞馬遜亞馬遜
- 技術不行,運營不行,噹噹網只能靠價格了
- 開源網站生成系統網站
- 噹噹網雙11"超級工程":運維人雙十一怎麼過?運維
- 讀噹噹elastic-job後感AST
- 噹噹財報圖解:2014年Q3噹噹總營收同比增長31%圖解營收
- DeepMind圖網路庫開源了!
- 開源一個企業官網
- http內網穿透CYarp[開源]HTTP內網穿透
- 用DataList來做一個仿噹噹網上書店的小應用
- Java開源工具 網站開發工具清單Java開源工具網站
- StrongShop 開源商城網站,Laravel6 開發網站Laravel
- 物聯網【專案開發】開源系統開發
- 《Linux 開源網路全棧詳解:從DPDK 到 OpenFlow》之 Linux 開源網路Linux全棧
- 噹噹財報圖解:2014年噹噹淨利潤530萬美元 同比增長51.4%圖解
- 夢亞網路驗證開源程式
- 10款PHP開源網店系統PHP
- 解密淘寶網的開源架構解密架構
- [ATC]Facebook開源弱網模擬工具
- MTNET 自用ios網路庫開源iOS