分佈式RPC框架性能大比拼

Dubbo 是阿里巴巴公司開源的一個Java高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和 Spring框架無縫集成。不過,略有遺憾的是,據說在淘寶內部,dubbo由於跟淘寶另一個類似的框架HSF(非開源)有競爭關係,導致dubbo團隊已經解散(參見http://www.oschina.net/news/55059/druid-1-0-9 中的評論),反到是噹噹網的擴展版本仍在持續發展,牆內開花牆外香。其它的一些知名電商如噹噹、京東、國美維護了自己的分支或者在dubbo的基礎開發,但是官方的庫缺乏維護,相關的依賴類比如Spring,Netty還是很老的版本(Spring 3.2.16.RELEASE, netty 3.2.5.Final),倒是有些網友寫了升級Spring和Netty的插件。

Motan是新浪微博開源的一個Java 框架。它誕生的比較晚,起於2013年,2016年5月開源。Motan 在微博平臺中已經廣泛應用,每天爲數百個服務完成近千億次的調用。

rpcx是Go語言生態圈的Dubbo, 比Dubbo更輕量,實現了Dubbo的許多特性,藉助於Go語言優秀的併發特性和簡潔語法,可以使用較少的代碼實現分佈式的RPC服務。

gRPC是Google開發的高性能、通用的開源RPC框架,其由Google主要面向移動應用開發並基於HTTP/2協議標準而設計,基於ProtoBuf(Protocol Buffers)序列化協議開發,且支持衆多開發語言。本身它不是分佈式的,所以要實現上面的框架的功能需要進一步的開發。

thrift是Apache的一個跨語言的高性能的服務框架,也得到了廣泛的應用。

後續還會增加更多的 RPC 框架的比較,敬請收藏本文網址

以下是它們的功能比較:

  Dubbo Montan rpcx gRPC Thrift
開發語言 Java Java Go 跨語言 跨語言
分佈式(服務治理) × ×
多序列化框架支持 √ 
(當前支持Hessian2、Json,可擴展)
× 
(只支持protobuf)
× (thrift格式)
多種註冊中心 × ×
管理中心 × ×
跨編程語言 × × (支持php client和C server) ×

對於RPC的考察, 性能是很重要的一點,因爲RPC框架經常用在服務的大併發調用的環境中,性能的好壞決定服務的質量以及公司在硬件部署上的花費。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章